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

OSCHINA-MIRROR/samlin-etwemall

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Readme.md 19 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 05.06.2025 10:20 3a44fb2

Техническая архитектура Язык разработки: Java Базы данных: MySQL, SQL Server, Oracle Слой поддержки баз данных: Alibaba Druid Основные фреймворки: Spring, Spring MVC, Hibernate Кэширование: Memcache Полнотекстовый поиск: Lucene, Hibernate Search Шаблоны и представления: Velocity, HTML, CSS, jQuery Управление доступом: Spring Security Технические особенности Разработан на языке Java, использует концепции объектно-ориентированного программирования (OOP), обеспечивает высокую безопасность, отличную производительность и удобство расширения; Низкая внутренняя耦合度,模块化开发,便于多服务器拆分部署,提高系统性能; 多层次的安全控制机制,采用MVC开发模式,使用Spring Security管理权限,七层过滤器彻底解决安全问题; 应用Memcache缓存框架,数据缓存和资源缓存并存机制,提高系统数据加载效率,支持分布式缓存管理; Lucene全文本检索原生API深度开发,完美支持电商平台,支持自定义词库管理,使得商城检索功能更加完善; 内置自定义Velocity缓存标签,补充完善开源缓存框架不足,解决各类资源缓存,提升系统性能 电商平台配属体系强大,完备的产品体系包含手机商城、微信商城、桌面助手等多种相关电商系统; 系统支持的支付方式:平台统一支付(收款到平台账户,卖家申请提现后财务打款给卖家)和店铺支付(直接收款到卖家自己的账户) 系统支持的在线支付方式: PC端(见PayTools. java, shop/goods_cart3. html):微信扫码支付、支付宝支付、财付通支付、网银在线支付、贝宝支付、快钱支付 WAP端(见CartViewAction. java, wap/goods_cart3. html):微信公众号支付(只有在微信内打开显示)、支付宝手机网页支付(只有普通浏览器内打开显示,微信内打开不显示) 开发和推荐部署环境:Windows操作系统64-битная версия, JDK 1. 7 64-битная версия и Tomcat 7 64-битная версия PC-фронтенд главная страница: http://j15b548420.imwork.net/index.htm Мобильный WAP-фронтенд главная страница: http://j15b548420.imwork.net/wap/indexhtm Административная панель: http://j15b548420.imwork.net/admin/login.htm Администратор: admin/123456 Панель покупателя: http://j15b548420.imwork.net/buyer/index.htm Покупатель: zhangsan/123456, test3/123456 Панель продавца: http://j15b548420.imwork.net/seller/index.htm Продавец: wemall/123456, liying/123456 Администратор: admin/123456 Покупатель: zhangsan/123456, test3/123456 Продавец: wemall/123456, liying/123456 Шаги для вторичной разработки:

  1. Восстановите базу данных. Откройте файл wemall-demo.sql в блокноте, убедитесь, что китайские символы не искажены, скопируйте содержимое SQL в окно запроса инструмента Navicat для выполнения; после импорта проверьте, есть ли искажение символов в таблице wemall_goods, если нет, значит всё в порядке;
  2. Импортируйте проект wemall в среду разработки IDEA/eclipse/myeclipse;
  3. Настройте среду разработки JDK, параметры отладки и параметры для Tomcat;
  4. Измените mysqlbase.sid, mysqlbase.user и mysqlbase.password в src/jdbc.properties на ваши настройки MySQL, где mysqlbase.password необходимо зашифровать с помощью класса com.wemall.core.tools.DruidDecrypt;
  5. Запустите отладку в среде разработки;Шаги по переводу проекта eclipse/myeclipse в IDEA:
  6. Импортируйте проект eclipse/myeclipse в среду разработки IDEA;
  7. file->project structure->project настройте SDK;
  8. file->project structure->project настройте путь компиляции проекта на XXX\web\WEB-INF\classes;
  9. file->project structure->modules настройте paths, выберите use module compile output path и установите output path на XXX\web\WEB-INF\classes;
  10. file->project structure->Libraries добавьте проект XXX\web\WEB-INF\lib в библиотеки;
  11. Настройте локальную среду отладки Tomcat, в IDEA в правом верхнем углу настройте configurations на Tomcat server->local, настройте deployment на web-директорию проекта, чтобы можно было локально отладить;
  12. Проблема с отображением китайских символов в виде знака вопроса в базе данных Решение: замените источник данных dbcp на alibaba, измените конфигурации в jdbc.properties и applicationContext-configuration.xml; Результат: система работает корректно, но задачи по расписанию выдают ошибку: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.wemall.foundation.domain.Group.gg_list, no session or session was closed Также при обновлении dbcp с версии 1.2 до 1.4 символы всё ещё искажены, при обновлении до версии 2.1 система не запускается Внимание: база данных использует кодировку UTF-8, по умолчанию пароль root123, если ваш пароль MySQL отличается, используйте класс DruidDecrypt для шифрования и измените конфигурацию jdbc.properties в директории classes.
  13. Просмотр параметров в логах Hibernate #log4j.appender.STDOUT.Threshold=trace #log4j.category.org.hibernate.SQL=trace #log4j.category.org.hibernate.type=trace
  14. Структура проектаBase предоставляет базовую поддержку системы, объекты для персистентного хранения таблиц базы данных, интерфейсы для базовых операций с таблицами и функции загрузки файлов. Core ядро всей системы, включающее кэширование, безопасность, использование Spring для проксирования Hibernate через ORM-компоненты для выполнения операций с базой данных, создание унифицированных DAO, QueryService и т. д. Buyer реализация управления покупателями, включающая центр пользователя, сообщения, закладки, заказы и т. д. Admin управление системой на основе возможностей администратора, включающее бизнес-процессы, доступные для управления. Login-plug возможность использования других методов входа в систему, таких как QQ, Weibo и т. д., реализованная в этом компоненте. Lucene предоставление быстрого полнотекстового индексирования системы, магазинов и товаров. Pay поддержка различных методов оплаты заказов, включая Alipay, Online Banking, PayPal и Tenpay. Seller управление бизнесом продавцов, включающее управление товарами и заказами. Timer реализация различных задач по расписанию и статистических задач, механизмы работы в фоновом режиме. Uc поддержка интеграции с ucenter, включающая одноразовую регистрацию, вход и выход пользователя, а также взаимодействие с другими данными сообщества. View реализация функций просмотра, включающая независимую упаковку компонентов для запросов для удобства будущей оптимизации. ==================Анализ структуры кода================== Код, связанный с продуктами goods: action-класс: com.wemall.view.web.action.GoodsViewAction.java модель domain: com.wemall.foundation.domain.Goods.java запрос query: com.wemall.foundation.domain.query.GoodsQueryObject.java DAO-класс: com.wemall.foundation.GoodsDAO.java интерфейс сервиса: com.wemall.foundation.service.IGoodsService.java реализация сервиса: com.wemall.foundation.service.impl.GoodsServiceImpl.java html-страницы: Передняя часть: templates/zh_cn/shop/default/goods_list.html, good_detail.html Системный администратор: templates/zh_cn/system/admin/blue/goods_list.html, goods_manage.html Центр пользователя: templates/zh_cn/user/default/usercenter/goods.html ==================Анализ структуры кода==================
  15. Шаблоны Velocity "#" используется для обозначения инструкций Velocity, включая #set, #if, #else, #end, #foreach, #end, #include, #parse, #macro и т. д.
  16. 1 Проверка условия #if($info.imgs)
#else #end 4. 2 Цикл #foreach($info in $hotList1) $!info.title
#end 4. 3 Логические операторы: == && || 5. Появление диалогового окна Схема 1: схема использования wemall Страница ссылается на <script src="$!webPath/resources/js/jquery.shop.common.js"></script> <script type="text/javascript" src="js"></script> Отправить жалобу на этот товар Вариант два: использование компонента layer для отображения модальных окон, важно помнить, что jQuery должен быть версии 1.8.3 или выше Включение скрипта на странице `<script src="$! webPath/resources/layer/layer.js"></script>` 6. Исправление функции импорта из Тайваня, шаблон находится в `resources/data/taobao.csv` 7. Не следует произвольно обновлять jar-пакеты Spring и Spring MVC, система использует Spring MVC 2.5.6. Обновление до Spring 3.4/3.11 может привести к невозможности запуска системы 8. Использование AJAX Метод один: На сервере Java: ```java @RequestMapping(value = "/get_trans_area.htm", method = RequestMethod.POST) public void get_trans_area(HttpServletRequest request, HttpServletResponse response, String parentId) { if (StringUtils.isEmpty(parentId)) { parentId = "100000"; } TransArea transArea = this.transareaService.getObjById(Long.valueOf(Long.parseLong(parentId))); List> list = new ArrayList<>(); for (TransArea area : transArea.getChilds()) { Map map = new HashMap<>(); map.put("id", area.getId()); map.put("areaName", area.getAreaName()); list.add(map); } String result = Json.toJson(list, JsonFormat.compact()); response.setContentType("text/html"); response.setHeader("Cache-Control", "no-cache"); response.setCharacterEncoding("UTF-8"); try { PrintWriter writer = response.getWriter(); writer.print(result); } catch (IOException e) { e.printStackTrace(); } } ``` На клиенте JavaScript: ```javascript jQuery.ajax({ type: "POST", url: "$! webPath/get_trans_area.htm", data: {parentId: id}, dataType: "json", success: function(data) { if (id == "") { $("#area_tab span").eq(0).addClass("this"); } var text = ""; var last_id = ""; var last_level = ""; var last_name = ""; var city_id = $("#area_tab span[class='this']").find("a").attr("city_id"); jQuery.each(data, function(i, item) { last_id = item.id; last_level = item.level; last_name = item.areaName; if (item.id == city_id) { text = text + "" + item.areaName + ""; } else { `````` ```markdown 9. Общекитайские регионы, логистика доставки, таблица адресов получения: ```Фронтенд выбора региона доставки trans_area Таблица адресов получения area
  1. Основные бизнес-модели Store: модель магазина, таблица wemall_store StoreGrade: уровень магазина, таблица wemall_storegrade StoreClass: тип магазина, таблица wemall_storeclass User: модель пользователя, таблица wemall_user Goods: модель товара, таблица wemall_goods, запасы и цены на товары в поле goods_inventory_detail, а стили, материалы и длина в поле goods_property GoodsSpecification: модель определения спецификаций товаров, таблица wemall_goodsspecification GoodsSpecProperty: модель определения свойств спецификаций товаров, таблица wemall_goodsspecproperty Примечание: таблица wemall_goods_spec определяет отношения между таблицами wemall_goods и wemall_goodsspecproperty GoodsClass: модель типа товара, таблица wemall_goodsclass UserGoodsClass: модель пользовательских классификаций товаров, таблица wemall_usergoodsclass Примечание: таблица wemall_goods_ugc определяет отношения между таблицами wemall_goods и wemall_usergoodsclass GoodsBrand: модель бренда, таблица wemall_goodsbrand GroupGoods: модель товаров для групповых покупок, таблица wemall_group_goods Group: модель групповых покупок, таблица wemall_group BargainGoods: модель товаров со скидкой, таблица wemall_bargain_goods

```javascript
jQuery.ajax({
    type: 'POST',
    url: '$!webPath/seller/transport_area.htm',
    data: {"trans_city_type": trans_city_type, "trans_index": trans_index},
    success: function(data) {
        jQuery(".main").append(data);
    }
});
``````java
@RequestMapping({"/seller/transport_area.htm"})
public ModelAndView transport_area(HttpServletRequest request, HttpServletResponse response, String id, String trans_city_type, String trans_index) {
    ModelAndView mv = new JModelAndView(
            "user/default/usercenter/transport_area.html", this.configService
            .getSysConfig(),
            this.userConfigService.getUserConfig(), 0, request, response);
    List objs = this.transAreaService
            .query(
                    "select obj from TransArea obj where obj.parent.id is null order by obj.sequence asc",
                    null, -1, -1);
    mv.addObject("objs", objs);
    mv.addObject("trans_city_type", trans_city_type);
    mv.addObject("trans_index", trans_index);
    return mv;
}

ДоставкаТоваров: Модель для доставки товаров, таблица wemall_delivery_goods АкцииТоваров: Модель для товаров в акциях, таблица wemall_activity_goods КорзинаПокупок: Модель для корзины покупок, таблица wemall_storecart ДеталиПокупок: Модель для деталей покупок, таблица wemall_cart_gsp Заказы: Модель для заказов, таблица wemall_orderform Платежи: Модель для платежей, таблица wemall_payment Вложения: Модель для вложений, таблица wemall_accessory Оценки: Модель для оценок, таблица wemall_evaluate ДинамическиеДанные: Модель для динамических данных, таблица wemall_dynamic11. Ключевые атрибуты заказа Способ оплаты payment alipay: Алипей wxcodepay: Оплата через WeChat weixin_wap: Оплата через WeChat (веб-версия) chinabank: Онлайн-банкинг bill: QuickMoney tenpay: Tenpay outline: Оплата наличными balance: Оплата с предоплаты payafter: Оплата после доставки paypal: PayPal

  1. Статус заказа order_status 10: Ожидание оплаты 15: Ожидание проверки наличной оплаты 16: Ожидание отправки для оплаты после доставки 20: Ожидание отправки 30: Отправлено 40: Получено 50: Завершено, оценено 60: Завершено 0: Отменено

  2. Статус магазина store_status 1: Ожидание проверки 2: Активен 3: Закрыт за нарушение правил

  3. Статус товара goods_status 0: В продаже 1: В запасах -1: Снято с продажи -2: Снято с продажи за нарушение правил

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/samlin-etwemall.git
git@api.gitlife.ru:oschina-mirror/samlin-etwemall.git
oschina-mirror
samlin-etwemall
samlin-etwemall
master