# haiwenmall **Repository Path**: liu-haiwenlhw/haiwenmall ## Basic Information - **Project Name**: haiwenmall - **Description**: 海文商城,微服务+分布式+全栈+集群+部署+自动化运维+可视化CICD。检索,登录,秒杀,商品,会员,仓库,第三方,SSO,购物车,优惠共10个模块 - **Primary Language**: Java - **License**: WTFPL - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-12-31 - **Last Updated**: 2023-12-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 海文商城简介 ### 前言 haiwenmall项目致力于打造一个完整的电商系统,采用现阶段流行技术来实现,采用前后端分离技术编写。 ### 项目介绍 haiwenmall(海文商城) 项目是一套电商项目,包括前台商城系统以及后台管理系统,基于 SpringCloud + SpringCloudAlibaba + MyBatis-Plus实现,采用 Docker 容器化部署。前台商城系统包括:用户登录、注册、商品搜索、商品详情、购物车、下订单流程、秒杀活动等模块。后台管理系统包括:系统管理、商品系统、优惠营销、库存系统、订单系统、用户系统、内容管理等七大模块。 ### 组织结构 ``` gulimall ├── common -- 工具类及通用代码 ├── renren-generator -- 人人开源项目的代码生成器 ├── auth-server -- 认证中心(社交登录、OAuth2.0、单点登录) ├── cart -- 购物车服务 ├── coupon -- 优惠卷服务 ├── gateway -- 统一配置网关 ├── order -- 订单服务 ├── product -- 商品服务 ├── search -- 检索服务 ├── seckill -- 秒杀服务 ├── third-party -- 第三方服务 ├── ware -- 仓储服务 └── member -- 会员服务 ``` ### 技术选型 **后端技术** | 技术 | 说明 | 官网 | | :----------------: | :----------------------: | :---------------------------------------------: | | SpringBoot | 容器+MVC框架 | https://spring.io/projects/spring-boot | | SpringCloud | 微服务架构 | https://spring.io/projects/spring-cloud | | SpringCloudAlibaba | 一系列组件 | https://spring.io/projects/spring-cloud-alibaba | | MyBatis-Plus | ORM框架 | https://mp.baomidou.com | | renren-generator | 人人开源项目的代码生成器 | https://gitee.com/renrenio/renren-generator | | Elasticsearch | 搜索引擎 | https://github.com/elastic/elasticsearch | | RabbitMQ | 消息队列 | https://www.rabbitmq.com | | Springsession | 分布式缓存 | https://projects.spring.io/spring-session | | Redisson | 分布式锁 | https://github.com/redisson/redisson | | Docker | 应用容器引擎 | https://www.docker.com | | OSS | 对象云存储 | https://github.com/aliyun/aliyun-oss-java-sdk | **前端技术** | 技术 | 说明 | 官网 | | :-------: | :--------: | :-----------------------: | | Vue | 前端框架 | https://vuejs.org | | Element | 前端UI框架 | https://element.eleme.io | | thymeleaf | 模板引擎 | https://www.thymeleaf.org | **业务架构图** ![UUvb7T.png](https://images.gitee.com/uploads/images/2020/0714/193425_9bb153d1_4914148.png) ### 环境搭建 #### 开发工具 | 工具 | 说明 | 官网 | | :-----------: | :-----------------: | :---------------------------------------------: | | IDEA | 开发Java程序 | https://www.jetbrains.com/idea/download | | RedisDesktop | redis客户端连接工具 | https://redisdesktop.com/download | | SwitchHosts | 本地host管理 | https://oldj.github.io/SwitchHosts | | X-shell | Linux远程连接工具 | http://www.netsarang.com/download/software.html | | Navicat | 数据库连接工具 | http://www.formysql.com/xiazai.html | | PowerDesigner | 数据库设计工具 | http://powerdesigner.de | | Postman | API接口调试工具 | https://www.postman.com | | Jmeter | 性能压测工具 | https://jmeter.apache.org | | Typora | Markdown编辑器 | https://typora.io | #### 开发环境 | 工具 | 版本号 | 下载 | | :-----------: | :----: | :----------------------------------------------------------: | | JDK | 1.8 | https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html | | Mysql | 5.7 | https://www.mysql.com | | Redis | 6.0 | https://redis.io/download | | Elasticsearch | 7.6.2 | https://www.elastic.co/downloads | | Kibana | 7.6.2 | https://www.elastic.co/cn/kibana | | RabbitMQ | 3.8.5 | http://www.rabbitmq.com/download.html | | Nginx | 1.1.6 | http://nginx.org/en/download.html | #### 搭建步骤 > Windows环境部署 - 修改本机的host文件,映射域名端口 ``` 192.168.6.128 haiwenmall.com 192.168.6.128 search.haiwenmall.com 192.168.6.128 item.haiwenmall.com 192.168.6.128 auth.haiwenmall.com 192.168.6.128 cart.haiwenmall.com 192.168.6.128 order.haiwenmall.com 192.168.6.128 member.haiwenmall.com 192.168.6.128 seckill.haiwenmall.com 以上换成自己Linux的ip地址 ``` - 修改Linux中Nginx的配置文件 ``` 1、在nginx.conf中添加如下配置 upstream haiwenmall { #负载均衡 server 192.168.6.128:88; server 192.168.6.127:88; } server { listen 80; server_name haiwenmall.com *.haiwenmall.com lhw.vaiwan.com; #配置静态资源的动态分离 location /static/ { root /usr/share/nginx/html; } #支付异步回调 location /payed/ { proxy_set_header Host order.haiwenmall.com; #不让请求头丢失 proxy_pass http://haiwenmall; } location / { proxy_set_header Host $host; #不让请求头丢失 proxy_pass http://haiwenmall; } ``` - 克隆前端项目 `renren-fast-vue` 以 `npm run dev` 方式去运行 - 克隆整个后端项目 `haiwenmall` ,并导入 IDEA 中完成编译 ### 如果你喜欢,要是觉得对你有帮助的话,请点个赞是对我最大的支持!