Skip to content
/ xmall Public
forked from Exrick/xmall

基于SOA架构的分布式电商购物商城 前后端分离 前台商城:Vue全家桶 后台管理系统:Dubbo/SSM/Elasticsearch/Redis/MySQL/ActiveMQ/Shiro/Zookeeper等

License

Notifications You must be signed in to change notification settings

jamietao/xmall

 
 

Repository files navigation

XMall

AUR GitHub stars GitHub forks

项目已部署,在线Demo

前台页面为基于Vue的独立项目 请跳转至 xmall-front 项目仓库查看

开发中,敬请期待!

基于SOA架构的分布式购物电商商城

  • 后台管理系统:管理商品、订单、类目、商品规格属性、用户、权限、系统统计、系统日志以及前台内容等功能
  • 前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作
  • 会员系统:用户可以在该系统中查询已下的订单、管理订单、我的优惠券等信息
  • 订单系统:提供下单、查询订单、修改订单状态、定时处理订单
  • 搜索系统:提供商品的搜索功能
  • 单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息

v1.1更新日志(需更新前后台代码及SQL)

  • 接入XPay支付系统
  • 更新Dubbo(2.6.1)、ES(6.2.3)等依赖版本
  • 取消ES需在页面中配置及跨域问题,ES默认配置集群名改为原elasticsearch
  • 修复后台统计热卖商品SQL错误,xmall-front-web模块支持SpringMVC文件上传配置
  • 修改金额字段类型优化SQL与备注
  • 优化后台页面
  • 修复用户修改BUG
  • 优化批量删除
  • 优化商品分类添加
  • 重构首页,后台可配置,包括3D轮播图
  • 新增缓存管理功能菜单
  • 完成订单打印发货等功能,实现快递管理
  • 增添订单统计报表
  • 修复前后端分离极验验证码session存储问题
  • 实现ES IK分词插件扩展词典库管理
  • 增添限流
  • 注:SKU设计预计将在开源小程序后台实现

项目架构及功能模块图

前端所用技术

  • 后台页面
  • 前台页面
    • 详情请跳转至 xmall-front 项目仓库
    • 感谢 yucccc 的开源 vue-mall 项目提供前端页面及框架支持
    • Vue2 + Vuex + Vue Router + Element UI + ES6 + webpack + axios + Node.js

后端所用技术

各框架依赖版本皆使用目前最新版本 可进入xmall-parent中 pom.xml 查看

文件说明

  • xmall 文件夹提供部分依赖与sql文件
    • xmall.sql:数据库文件
    • dubbo.xsd:需手动配置避免报错
    • redis-3.0.0.gem:Redis集群搭建所需Ruby库
  • generatorSqlmapCustom 文件夹为 Mybatis Generator 逆向生成工具,且已配置好maven插件

本地开发运行部署

  • 下载zip直接解压或安装git后执行克隆命令 git clone https://github.com/Exrick/xmall.git
  • 安装各中间件并启动:ZooKeeperRedisActiveMQElasticsearch
  • 修改各配置文件相应依赖IP配置(默认本地127.0.0.1),以及七牛云、极验配置、天气接口在 xmall-common - utils 中找到修改,XPay邮箱配置在 manager-service与sso-service
  • Maven安装和在IDEA中配置
  • 使用IDEA(破解/免费注册) File-Open 直接打开xmall项目,点击右下角 Import Changes 等待安装完依赖即可
  • MySQL数据库新建 xmall 数据库,运行sql文件,注意在有 db.properties 的模块中修改你的数据库连接配置
  • 按照依赖顺序分别在每个模块文件夹根目录执行 mvn install 命令
  • 项目需运行除 xmall-parent xmall-common 以外其它所有6个服务,且都已配置好Tomcat插件, 执行命令 mvn tomcat7:run 或在IDEA中使用插件(View - Tool Buttons - 右侧菜单Maven Projects - tomcat7 - tomcat7:run)运行即可,当然可自行配置
  • 后端管理系统默认端口8888 http://localhost:8888 管理员账密admin|123456
  • 前端项目接口默认端口7777 前台页面请启动基于Vue的 xmall-front 项目,并修改其接口配置

相关技术点说明

  • ES-IK分词插件词典库扩展

    • 详见 elasticsearch-analysis-ik插件作者项目README说明
    • 本项目中扩展接口和禁用词接口分别为 http:localhost:8888/getDictListhttp:localhost:8888/getStopDictList,将以上2个接口配置进IK插件扩展配置文件{conf}/analysis-ik/config/IKAnalyzer.cfg.xml 或者 {plugins}/elasticsearch-analysis-ik-*/config/IKAnalyzer.cfg.xml中即可,示例:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
    <properties>
        <comment>IK Analyzer 扩展配置</comment>
        <!--用户可以在这里配置远程扩展字典 -->
        <entry key="remote_ext_dict">http:localhost:8888/getDictList</entry>
        <!--用户可以在这里配置远程扩展停止词字典-->
        <entry key="remote_ext_stopwords">http:localhost:8888/getStopDictList</entry>
    </properties>
  • 限流

    • xmall-front-web 中已配置限流,配置文件 resource.properties 中可配置全局限流,示例:

      #启用全局限流
      xmall.rateLimit.enable=true
      #每1秒内
      xmall.rateLimit.timeout=1000
      #限制10个请求
      xmall.rateLimit.limit=10
    • 指定方法限流注解

      @RateLimiter(limit = 1, timeout = 5000)
    • 支持多维度IP、uid等限流 详见代码

技术疑问交流

捐赠

About

基于SOA架构的分布式电商购物商城 前后端分离 前台商城:Vue全家桶 后台管理系统:Dubbo/SSM/Elasticsearch/Redis/MySQL/ActiveMQ/Shiro/Zookeeper等

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 95.4%
  • HTML 4.5%
  • Other 0.1%