1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/Exrick-xmall

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Авторский проект бакалаврской работы ожидает вашей спонсорской поддержки.

Видео рекламного характера для серии XMall-проектов:

https://www.bilibili.com/video/av23121122/ Автор лично создал это видео, перейдите по ссылке, чтобы посмотреть его.

Проект уже развёрнут, доступны демонстрационные версии:

Получить однопользовательскую версию:

XMall — это нераспределённая система, которая может работать на сервере с 1G памяти и 1 ядром процессора. Чтобы получить её, перейдите в магазин (http://xmall.exrick.cn/), зарегистрируйтесь, произведите тестовую покупку и заполните форму для получения пожертвования. После успешной оплаты вы получите ссылку на скачивание по электронной почте.

Фронт-энд на Vue является отдельным проектом, см.:

https://github.com/Exrick/xmall-front

Другие проекты автора:

Распределённый интернет-магазин на основе SOA:

  • Бэкенд-система управления: управление товарами, заказами, категориями, атрибутами товаров, пользователями, разрешениями, статистикой системы, журналами системы и контентом фронт-энда.
  • Фронт-энд: пользователи могут регистрироваться, входить в систему, просматривать товары, размещать заказы и выполнять другие операции.
  • Система членства: пользователи могут просматривать свои заказы, управлять ими, получать информацию о своих купонах и т. д.
  • Система заказов: предоставляет функции размещения, просмотра, изменения статуса и обработки заказов по расписанию.
  • Поисковая система: обеспечивает поиск товаров.
  • Одноточечная система входа: обеспечивает единый вход для нескольких систем и предоставляет информацию о вошедших пользователях.

Журнал обновлений версии 1.1 (требуется обновить код бэкенда и SQL):

  • Интеграция с собственной системой XPay для приёма платежей.
  • Обновление зависимостей Dubbo (2.6.1), ES (6.2.3) и других.
  • Отмена необходимости настройки ES в интерфейсе и решения проблемы с междоменным доступом; изменение имени кластера по умолчанию на исходное «elasticsearch».
  • Исправление ошибки в SQL для статистики самых продаваемых товаров во фронт-энде xmall-front-web и настройка SpringMVC для поддержки загрузки файлов.
  • Оптимизация типов полей и комментариев в SQL, а также улучшение поиска и фильтрации товаров.
  • Улучшение интерфейса администратора, включая добавление трёхмерной карусели изображений.
  • Добавление функций управления кешем в административную панель, включая настройку и управление доставкой.
  • Редизайн главной страницы с возможностью настройки через бэкенд, включая 3D карусель изображений.
  • Расширение функций бэкенда, включая управление кешем и настройку доставки.
  • Создание отчётов о заказах.
  • Устранение проблем с сеансами проверки подлинности между фронтендом и бэкендом.
  • Реализация расширения словаря для плагина IK токенизации ES и добавление ограничения скорости запросов.
  • Удаление быстрого поиска, который теперь настраивается во фронтенде (2018.7.22); изменение порта отправки электронной почты на 465.
  • Настройка навигации в админке через бэкенд (2018.7.27).
  • Исправление ошибок в управлении категориями и открытие исходного кода мини-приложения (2019.10.06).
  • Примечание: дизайн SKU планируется реализовать в мини-приложении.
  • Ссылка на документацию по удалению проверки подлинности JSR (https://github.com/Exrick/xmall/wiki/%E6%9E%81%E9%AA%8C%E7%A7%BB%E9%99%A4%E6%96%87%E6%A1%A3).

Иллюстрации:

Технологии, используемые во фронтэнде:

  • Бэкэнд-страницы:
    • Автор благодарит H-ui и FlatLab за поддержку статических страниц.
    • Ztree (jQuery плагин для деревьев), DataTables (плагин jQuery для таблиц), Layer (веб-компонент для слоёв), Distpicker (китайский плагин для трёхуровневой связи адресов провинций, городов и районов), KindEditor (простой и удобный текстовый редактор без множества проблем UEditor), WebUploader (плагин для загрузки файлов от Baidu), HighCharts (библиотека графиков) и Не-чесском (очень простой веб-счётчик).
  • Фронтенд-страницы:
    • Подробные сведения см. в xmall-front.
    • Автор выражает благодарность проекту vue-mall от yucccc за предоставление фронта и фреймворка.
    • Vue2 + Vuex + Vue Router + Element UI + ES6 + webpack + axios + Node.js.

Технологии, используемые в бэкэнде: Различные зависимости фреймворков перечислены в файле pom.xml проекта xmall-parent. Дуббо ЗооКекер MySQL Mycat: промежуточное ПО для разделения баз данных и таблиц Redis: кэш Elasticsearch: распределённая поисковая система на основе Lucene ActiveMQ: очередь сообщений Druid: пул соединений с высокопроизводительной базой данных Али Shiro: фреймворк безопасности Swagger2: генерация API-документации Docker Nginx Tomcat Maven

Сторонние SDK

七牛云: облачное хранилище файлов 极验 Test-button: сервис верификации, см. документ «Удаление кода верификации»

Сторонние плагины

Hotjar: комплексный анализ и обратная связь 搜狐畅言评论插件

Сторонние интерфейсы

Mob全国天气预报接口: требуется регистрация аккаунта и запрос AppKey после создания приложения

Другие инструменты разработки

Jenkins: непрерывная интеграция JRebel: разработка с горячей заменой Плагин стандартов разработки Али для Java

Описание файлов

Папка xmall содержит некоторые зависимости и SQL-файлы:

— xmall.sql: файл базы данных; — dubbo.xsd: требует ручной настройки во избежание ошибок; — redis-3.0.0.gem: библиотека Ruby, необходимая для построения кластера Redis.

Папка generatorSqlmapCustom — это инструмент Mybatis Generator для обратного проектирования, уже настроен плагин Maven.

Запуск и развёртывание на локальном компьютере

  1. Скачайте zip-архив или установите Git и выполните команду клонирования git clone https://github.com/Exrick/xmall.git.
  2. Установите необходимые промежуточные программы и запустите их: ZooKeeper, Redis, ActiveMQ, Elasticsearch.
  3. Измените соответствующие IP-конфигурации в каждом файле конфигурации (по умолчанию 127.0.0.1), а также конфигурации для семи облаков, экстремальной проверки и прогноза погоды в папке xmall-common - utils. Конфигурация почтового ящика XPay находится в папках manager-service и sso-service.
  4. Установите Maven и настройте его в среде IDEA (см. раздел «Установка и настройка Maven»).
  5. Откройте проект xmall в IDEA, нажав File-Open, и дождитесь установки зависимостей.
  6. Создайте новую базу данных MySQL с именем xmall и запустите SQL-файл. Обратите внимание, что в модулях с файлами db.properties необходимо изменить конфигурацию подключения к базе данных.
  7. Выполните команду mvn install в корне каждой папки модуля, кроме xmall-parent и xmall-common.
  8. Запустите все остальные 6 сервисов, кроме родительского и общего, которые уже настроены с плагином Tomcat. Для запуска используйте команду mvn tomcat7:run или плагин Tomcat7 в среде IDEA.
  9. Порт по умолчанию для бэкенд-системы управления — 8888 (http://localhost:8888). Администратор имеет логин admin и пароль 123456.
  10. Фронтенд-проект имеет порт по умолчанию 7777. Чтобы получить доступ к интерфейсу, запустите Vue-основанный проект xmall-front и измените конфигурацию интерфейса.

Технические аспекты

Расширение плагина ES-IK для анализа слов:

В этом проекте расширение интерфейса и список запрещённых слов находятся по адресам http://localhost:8888/getDictList и http://localhost:8888/getStopDictList, соответственно. Эти два интерфейса должны быть добавлены в конфигурационный файл IKAnalyzer.cfg.xml плагина {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. Пример:

@RateLimiter(limit = 1, timeout = 5000)

Поддерживается ограничение скорости для различных параметров, таких как IP, uid и другие. Подробности смотрите в коде.

Общение по техническим вопросам

Для обсуждения технических вопросов существует QQ-чат с платной подпиской (номер группы 475743731). Здесь можно получить подробную документацию по проектам и презентации для дипломных работ. — Бесплатный канал для общения 562962309

— Блог автора: http://blog.exrick.cn

Коммерческая лицензия

  • Использование в личных целях осуществляется в соответствии с открытым исходным кодом GPL.
  • Для коммерческого использования необходимо связаться с автором для получения лицензии по низкой цене.

Пожертвования (http://xmall.exrick.cn).

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
GPL-3.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/Exrick-xmall.git
git@api.gitlife.ru:oschina-mirror/Exrick-xmall.git
oschina-mirror
Exrick-xmall
Exrick-xmall
master