159

GitHub - Exrick/xmall: 基于SOA架构的分布式电商购物商城 前后端分离 前台商城:Vue全...

 6 years ago
source link: https://github.com/Exrick/xmall
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

XMall

作者本科毕业设计项目 期待您的捐赠支持

X系列项目宣传视频

项目已部署,在线Demo

单体版获取

  • 单体XMall系统 非分布式 可跑在1g1核服务器上
  • 获取方式:进入商城 http://xmall.exrick.cn/ 登陆后随意测试支付商品 填写捐赠信息 支付成功后将自动发至您填写的邮箱

前台页面为基于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分词插件扩展词典库管理 增添限流
  • 2018.7.22 取消快速搜索接口需前端配置 发送邮件端口改为465
  • 2018.7.27 首页导航栏可后台配置
  • 2019.10.06 修复分类管理BUG 开源小程序前端
  • 注:SKU设计预计将在小程序后台实现
  • 极验验证码移除文档

68747470733a2f2f6f6f6f2e306f302e6f6f6f2f323031382f30372f32322f356235343631303939303339652e6a7067

68747470733a2f2f6f6f6f2e306f302e6f6f6f2f323031382f30372f32322f356235343631323538383663612e6a7067

68747470733a2f2f6f6f6f2e306f302e6f6f6f2f323031382f30372f32322f356235343631336263383636662e6a7067

68747470733a2f2f6f6f6f2e306f302e6f6f6f2f323031382f30372f32322f356235343631356239353738382e6a7067

68747470733a2f2f6f6f6f2e306f302e6f6f6f2f323031382f30372f32322f356235343631373536623262302e6a7067

项目架构及功能模块图

68747470733a2f2f6f6f6f2e306f302e6f6f6f2f323031382f30372f32322f356235343631393236393639622e706e67

68747470733a2f2f6f6f6f2e306f302e6f6f6f2f323031382f30372f32322f356235343631616132666465652e6a7067

68747470733a2f2f6f6f6f2e306f302e6f6f6f2f323031382f30372f32322f356235343631633534636235352e6a7067

前端所用技术

  • 后台页面
  • 前台页面
    • 详情请跳转至 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等限流 详见代码

技术疑问交流

  • QQ交流群 475743731(付费),可获取各项目详细图文文档、xmall毕设PPT

  • 免费交流群 562962309

  • 作者博客:http://blog.exrick.cn

  • 个人学习使用遵循GPL开源协议
  • 商用需联系作者低价授权

捐赠


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK