转载来自CSDN:https://blog.csdn.net/bigniao_qishan/article/details/120282237

目录

项目特点:

内置功能模板:

项目介绍:

本地部署项目:

环境要求:

nginx配置:


项目特点:

基于 Spring Cloud +MybatisPlus+Rabbitmq+XXL-JOB+redis+Vue的前后端分离商城

内置功能模板:

  • 商品管理: 上传商品、规格sku管理、商品上下架、分类管理等;
  • 订单管理: 订单结算、购物车、订单支付、评价、售后等;
  • 物流管理: 收发地址管理、物流发货、电子面单打印、小票打印、收货等;
  • 会员管理: 会员卡、会员权益、会员管理、储值管理等;
  • 营销管理: 优惠券、满减、积分商城、直播、社群接龙、环保回收等;
  • 财务管理: 对账单、提现工单、财务报表导出等;
  • 客户管理: 客户列表、自动标签、积分管理等;
  • DIY装修: 支持所有页面DIY装修;
  • 素材导入: 淘宝、天猫、拼多多、京东等电商平台一键导入商品素材;
  • 供货商管理:平台供货商管理;
  • oss对象存储 支持 阿里云 腾讯云 七牛云(加速图片读取速度);
  • sms短信服务 支持 腾讯云 阿里云;
  • 支付服务 支持微信支付 余额支付 好友代付 额外对接了盛付通 使得商家提现费率更低 自动分账操作更为方便;
  • 总台服务 控制商户入驻,及各种信息私有配置。

项目介绍:

    gruul 
    account-open                    用户服务
    platform-open                   平台服务
    gruul-sms-open                  短信服务
    grull-oss-open                  oss存储服务(内存不足时可优先考虑进行合并)
    gruul-afs-open                  售后服务
    gruul-goods-open                商品服务
    gruul-order-open                订单服务
    gruul-shops-open                店铺服务
    grull-payment-open              支付服务
    gruul-gateway-open              网关服务
    gruul-discount-open             抵扣服务
    gruul-logistics-open            物流服务

本地部署项目:

下载地址:

Gitee地址

git clone https://gitee.com/qisange/basemall.git

环境要求:

这里我只放了Linux的安装命令,Windows自行安装

项目启动前 需要安装完成 Nacos Nexus Docker Mysql Redis rabbitmq xxl-job-admin

安装压缩包获取

链接:https://pan.baidu.com/s/1rXzEYl_Korj9T27ptplRbA 
提取码:64s1 
  • Nginx
yum install nginx-1.16.1
  • Nacos
解压 tar.gz
   移动到bin目录下  cd /nacos/bin 
   单机版启动 :sh startup.sh -m standalone    
   访问 :ip:8848/nacos   
          user :nacos
          pwd:nacos
   如需使用数据库进行配置请执行初始化sql及更改配置
   /nacos/conf/nacos-mysql.sql
   /nacos/conf/application.properties.example
  注:nacos密码有进行加密 要自己生成一个
      org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder
      String pwd = new BCryptPasswordEncoder().encode("123456");
  • Mysql
请大家自行安装 如遇问题请留言
  • Redis
请大家自行安装 如遇问题请留言
  • rabbitmq
因使用延迟队列,我们提供专门docker镜像
  docker pull xiaoq123/mq-image:3.8
  docker run -d -p 15672:15672 -p 5672:5672  --name rabbitmq --restart always -e RABBITMQ_DEFAULT_USER=用户名 -e RABBITMQ_DEFAULT_PASS=密码 
  xiaoq123/mq-image:3.8
  • xxl-job-admin
因版本变动过大,我们提供专门docker镜像
  docker pull xiaoq123/xxl-job-image:2.1.1
  docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://数据库地址?Unicode=true&characterEncoding=UTF-8 --spring.datasource.username=数据库账号--spring.datasource.password=数据库密码 " -p 9010:8080 -v /tmp:/data/applogs --name xxl-job-admin  --privileged=true -d xiaoq123/xxl-job-image:2.1.1

nginx配置:

nginx使用教程请参考 Nginx中文文档 (https://www.nginx.cn/doc/)

  server {
    listen 80;
    listen [::]:80;
    server_name 域名;
    return 301 https://域名/$request_uri;
  }
  server{
    listen 443 ssl ;
    listen [::]:443 ssl ;
    server_name 域名;
    #SSL
    ssl_certificate /etc/nginx/ssl/域名证书.crt;
    ssl_certificate_key /etc/nginx/ssl/域名证书.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    ssl_prefer_server_ciphers on;

     #后端接口
    location /api/ {
      if ($request_method = OPTIONS ) {
          add_header Access-Control-Allow-Origin "*";
          add_header Access-Control-Allow-Methods "POST, GET, PUT, OPTIONS, DELETE, HEAD";
          add_header Access-Control-Max-Age "3600";
          add_header Access-Control-Allow-Headers "DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorizationi, *";
          add_header Access-Control-Allow-Credentials "true";
          add_header Content-Length 0;
          add_header Content-Type text/plain;
          return 204;
      }

       add_header 'Access-Control-Allow-Origin' "*";
       add_header 'Access-Control-Allow-Methods' 'POST, GET, PUT, OPTIONS, DELETE, HEAD';
       add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,*';
       add_header 'Access-Control-Allow-Credentials' 'true';
       add_header Access-Control-Max-Age "3600";
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection "upgrade";
       proxy_pass http://127.0.0.1:10999/;
    }
   }