# HighPerformanceMall
**Repository Path**: jacklinnnn/highPerformanceMall
## Basic Information
- **Project Name**: HighPerformanceMall
- **Description**: 高性能企业级电商平台
- **Primary Language**: Java
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-11-17
- **Last Updated**: 2024-03-05
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## 🌈HighPerformanceMall 高性能企业级电商平台
当前最新版本发布日期: **2022-02-16**
一个基于Spring Cloud&Spring Cloud Alibaba、Nacos、Seata、Mysql、Redis、RabbitMQ、ElasticSearch、minio的微服务高性能电商商城系统,采用主流的互联网技术架构、全新的UI设计、支持集群部署、服务注册和发现以及拥有完整的订单流程等,代码完全开源的电商平台系统。
### ✔后端技术架构
- 基础框架:Spring Boot 2.1.3.RELEASE、Spring Cloud Alibaba
- 消息队列:RabbitMq
- 搜索引擎:ElasticSearch
- 持久层框架:Mybatis-plus 3.3.2
- 数据库连接池:阿里巴巴Druid 1.1.17
- 缓存框架:redis
- 日志打印:logback
- 其他:Hutool,fastjson,poi,Swagger-ui,quartz, lombok(简化代码)等。
### 💡开发环境
- 语言:Java 8
- IDE(JAVA): IDEA
- 依赖管理:Maven
- 数据库:MySQL 5.7 或 8.0,建议使用8.0版本,性能可观
- 缓存:Redis
### 核心功能
### 一、查询过滤器用法
```
QueryWrapper> queryWrapper = QueryGenerator.initQueryWrapper(?, req.getParameterMap());
```
代码示例:
```
@GetMapping(value = "/list")
public Result> list(HpmDemo hpmDemo,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
Result> result = new Result>();
//调用QueryGenerator的initQueryWrapper
QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(hpmDemo, req.getParameterMap());
Page page = new Page(pageNo, pageSize);
IPage pageList = jeecgDemoService.page(page, queryWrapper);
result.setSuccess(true);
result.setResult(pageList);
return result;
}
```
- 查询规则 (本规则不适用于高级查询,高级查询有自己对应的查询类型可以选择 )
| 查询模式 | 用法 | 说明 |
|---------- |-------------------------------------------------------|------------------|
| 模糊查询 | 支持左右模糊和全模糊 需要在查询输入框内前或后带\*或是前后全部带\* | |
| 取非查询 | 在查询输入框前面输入! 则查询该字段不等于输入值的数据(数值类型不支持此种查询,可以将数值字段定义为字符串类型的) | |
| \> \>= < <= | 同取非查询 在输入框前面输入对应特殊字符即表示走对应规则查询 | |
| in查询 | 若传入的数据带,(逗号) 则表示该查询为in查询 | |
| 多选字段模糊查询 | 上述4 有一个特例,若某一查询字段前后都带逗号 则会将其视为走这种查询方式 ,该查询方式是将查询条件以逗号分割再遍历数组 将每个元素作like查询 用or拼接,例如 现在name传入值 ,a,b,c, 那么结果sql就是 name like '%a%' or name like '%b%' or name like '%c%' | |
### 二、AutoPoi(EXCEL工具类-EasyPOI衍变升级重构版本)
## docker镜像用法
```
注意: 如果本地安装了mysql和redis,启动容器前先停掉本地服务,不然会端口冲突。
net stop redis
net stop mysql
# 1.修改项目配置文件 application.yml
active: docker
# 2.先进JAVA项目根路径 maven打包
mvn clean package
# 3.构建镜像__容器组(当你改变本地代码,也可重新构建镜像)
docker-compose build
# 4.配置host
# highPerformanceMall
127.0.0.1 hpm-redis
127.0.0.1 hpm-mysql
127.0.0.1 hpm-system
# 5.启动镜像__容器组(也可取代运行中的镜像)
docker-compose up -d
# 6.访问后台项目(注意要开启swagger)
http://localhost:8090/highPerformanceMall/doc.html
```