# 外贸微信小程序+springBoot后端 **Repository Path**: xue-zihan/master ## Basic Information - **Project Name**: 外贸微信小程序+springBoot后端 - **Description**: No description available - **Primary Language**: Java - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-08 - **Last Updated**: 2026-01-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 外贸商城微信小程序后端服务 ## 项目概述 本项目是专为外贸商城微信小程序打造的后端服务系统。项目采用现代化的 **Spring Boot** 架构,结合 **MyBatis-Plus** 进行高效的数据持久化操作,并深度集成了 **Redis** 缓存机制以提升系统性能。 系统遵循**分层架构设计**(适配层、应用层、领域层、基础设施层),旨在提供高内聚、低耦合的业务支持。核心功能涵盖用户管理、商品运营、订单处理以及第三方支付/物流服务集成。 ## 技术栈 - **核心框架**: Spring Boot 2.x - **ORM 框架**: MyBatis-Plus (简化数据库操作,支持自动填充、逻辑删除等) - **数据库**: MySQL 5.7+ / 8.0+ - **缓存中间件**: Redis - **API 文档**: Swagger (通过 `@Api` 注解描述) - **HTTP 客户端**: Apache HttpClient / RestTemplate ## 项目结构 项目采用清晰的包结构划分职责: ```text com.yingliao.mall ├── adapter # 适配层 (Controller, DTO, 统一响应 Result) │ ├── controller # 控制器,处理 HTTP 请求 │ └── common # 通用返回对象 (Result) ├── application # 应用层 (业务逻辑编排,AppService, DTO转换) │ ├── converter # 对象转换器 (DTO <-> Entity) │ ├── dto # 数据传输对象 │ └── service # 应用服务接口 ├── config # 配置类 (CORS, Redis, MyBatisPlus, 第三方API配置) ├── domain # 领域层 (核心业务逻辑) │ ├── entity # 领域实体 │ ├── repository # 仓储接口 │ └── service # 领域服务接口 ├── infrastructure # 基础设施层 (数据访问实现,外部服务调用) │ ├── persistence # 持久化实现 (Mapper, RepositoryImpl) │ └── service # 外部接口服务实现 (ExternalApiService) └── utils # 工具类 (HttpClientUtils) ``` ## 功能模块 ### 1. 用户管理 (`UserController`) - **微信登录**: 支持通过 `code` 换取 `openId` 实现静默登录。 - **用户信息**: 获取用户详情、更新用户头像、昵称等。 - **积分管理**: 支持用户积分的查询与修改。 - **状态管理**: 支持禁用/启用用户账户。 ### 2. 商品管理 (`ProductController`) - **商品 CRUD**: 创建、更新、删除商品信息。 - **库存管理**: 提供批量更新商品库存的接口。 - **商品浏览**: 支持分页查询、关键词搜索、获取热门/推荐商品。 - **商品属性**: 包含价格、成本价、规格参数、图片管理。 ### 3. 订单管理 (`OrderController`) - **下单**: 创建订单,生成订单号。 - **支付**: 集成微信支付 (`wechatUnifiedOrder`, `wechatOrderQuery`) 和支付宝支付。 - **物流**: 发货时记录物流单号,支持查询物流轨迹 (`queryLogistics`)。 - **订单流转**: 订单支付、发货、收货、确认、取消等全生命周期管理。 - **订单查询**: 支持按用户、按状态分页查询。 ### 4. 文件上传 (`UploadController`) - **OSS 集成**: 集成了对象存储服务,支持图片上传并返回访问 URL。 ## 第三方服务集成 (`ExternalApiConfig`) 系统通过 `ExternalApiConfig` 统一管理外部 API 配置,包括: | 服务类型 | 主要功能 | | :--- | :--- | | **微信支付 (WechatPay)** | 统一下单、订单查询、关闭订单、退款及查询 | | **支付宝 (Alipay)** | 交易创建、查询、退款 | | **微信小程序 (WechatMiniApp)** | 登录凭证校验、获取用户信息 | | **物流 (Logistics)** | 物流轨迹查询、物流公司列表订阅 | | **短信 (Sms)** | 短信发送服务 | | **汇率 (ExchangeRate)** | 外币汇率查询 | | **对象存储 (Oss)** | 文件上传存储 | ## 数据库设计 系统主要涉及以下核心数据表: ### 1. 用户表 (user) - **字段**: `id`, `openId`, `nickName`, `avatarUrl`, `phone`, `points` (积分), `status` (状态) - **说明**: 存储用户的基本信息与认证凭证,openId 为微信唯一标识。 ### 2. 商品表 (product) - **字段**: `id`, `name`, `price`, `costPrice`, `stock`, `sales`, `categoryId`, `brandId`, `images`, `spec`, `status` - **说明**: 记录商品的详细信息,支持上下架管理。 ### 3. 订单表 (order) - **字段**: `id`, `orderNo` (订单号), `userId`, `totalAmount`, `payAmount`, `payStatus`, `orderStatus`, `logisticsNo`, `logisticsCompany` - **说明**: 记录订单的金额、支付状态及物流流转状态。 ### 4. 订单详情表 (order_item) - **字段**: `id`, `orderId`, `productId`, `productName`, `price`, `quantity`, `spec` - **说明**: 记录订单中每一项商品的具体信息。 ## 快速开始 ### 环境准备 - JDK 1.8 或以上版本 - Maven 3.x - MySQL 数据库 - Redis 服务 ### 配置步骤 1. **数据库配置**: 修改 `main-module/src/main/resources/application.yml`,配置数据库连接信息。 ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/mall_db username: your_username password: your_password ``` 2. **Redis 配置**: 在 `application.yml` 中配置 Redis 连接。 ```yaml spring: redis: host: localhost port: 6379 ``` 3. **第三方 API 配置**: 在 `application.yml` 中配置微信支付、支付宝、OSS 等相关密钥和地址,或者通过 `ExternalApiConfig` 类进行配置。 ### 编译与运行 在 `main-module` 目录下执行以下命令: ```bash # 打包 mvn clean package # 运行 java -jar target/mall-backend-1.0.0.jar ``` 项目启动后,默认端口为 8080,API 文档可通过 Swagger UI 访问(如果已集成)。 ## API 接口文档概览 ### 用户接口 - `POST /user/login` - 用户登录 - `POST /user/login/wechat` - 微信小程序登录 - `GET /user/{id}` - 获取用户详情 - `PUT /user/points` - 更新用户积分 ### 商品接口 - `GET /product/{id}` - 获取商品详情 - `GET /product/page` - 分页查询商品 - `POST /product/create` - 创建商品 - `PUT /product/stock` - 批量更新库存 ### 订单接口 - `POST /order/create` - 创建订单 - `GET /order/{id}` - 获取订单详情 - `PUT /order/{id}/pay` - 订单支付 - `PUT /order/{id}/deliver` - 订单发货 - `PUT /order/{id}/receive` - 确认收货 ### 上传接口 - `POST /upload/image` - 上传图片 ## 注意事项 - 微信登录需要配置有效的小程序 `appId` 和 `appSecret`。 - 支付功能需要申请对应的商户号并配置证书路径。 - 生产环境部署时,请务必修改默认密码并开启安全配置。