11 KiB
商品寄卖服务模块 - 后续工作完成情况
完成时间
2025-11-08
一、已完成工作清单
1. ✅ Dao/Mapper 接口创建(14个)
所有 Dao 接口已创建在:crmeb-service/src/main/java/com/zbkj/service/dao/consignment/
| 序号 | 文件名 | 说明 | 状态 |
|---|---|---|---|
| 1 | WaUsersDao.java | 用户表 Mapper | ✅ 已完成 |
| 2 | WaGoodsDao.java | 商品表 Mapper | ✅ 已完成 |
| 3 | WaMerchandiseDao.java | 寄售商品表 Mapper | ✅ 已完成 |
| 4 | WaOrderDao.java | 订单表 Mapper | ✅ 已完成 |
| 5 | WaCategoryDao.java | 商品分类表 Mapper | ✅ 已完成 |
| 6 | WaAddressDao.java | 收货地址表 Mapper | ✅ 已完成 |
| 7 | WaMoneyLogDao.java | 余额变动表 Mapper | ✅ 已完成 |
| 8 | WaCouponLogDao.java | 优惠券变动表 Mapper | ✅ 已完成 |
| 9 | WaSelfbonusLogDao.java | 个人奖金变动表 Mapper | ✅ 已完成 |
| 10 | WaSharebonusLogDao.java | 推广奖金变动表 Mapper | ✅ 已完成 |
| 11 | WaWithdrawDao.java | 提现表 Mapper | ✅ 已完成 |
| 12 | WaAlipayDao.java | 用户支付宝表 Mapper | ✅ 已完成 |
| 13 | WaBankDao.java | 用户银行卡表 Mapper | ✅ 已完成 |
| 14 | WaBannerDao.java | 轮播图表 Mapper | ✅ 已完成 |
2. ✅ MyBatis XML 映射文件创建(14个)
所有 XML 映射文件已创建在:crmeb-service/src/main/resources/mapper/consignment/
| 序号 | 文件名 | 对应 Dao | 状态 |
|---|---|---|---|
| 1 | WaUsersMapper.xml | WaUsersDao | ✅ 已完成 |
| 2 | WaGoodsMapper.xml | WaGoodsDao | ✅ 已完成 |
| 3 | WaMerchandiseMapper.xml | WaMerchandiseDao | ✅ 已完成 |
| 4 | WaOrderMapper.xml | WaOrderDao | ✅ 已完成 |
| 5 | WaCategoryMapper.xml | WaCategoryDao | ✅ 已完成 |
| 6 | WaAddressMapper.xml | WaAddressDao | ✅ 已完成 |
| 7 | WaMoneyLogMapper.xml | WaMoneyLogDao | ✅ 已完成 |
| 8 | WaCouponLogMapper.xml | WaCouponLogDao | ✅ 已完成 |
| 9 | WaSelfbonusLogMapper.xml | WaSelfbonusLogDao | ✅ 已完成 |
| 10 | WaSharebonusLogMapper.xml | WaSharebonusLogDao | ✅ 已完成 |
| 11 | WaWithdrawMapper.xml | WaWithdrawDao | ✅ 已完成 |
| 12 | WaAlipayMapper.xml | WaAlipayDao | ✅ 已完成 |
| 13 | WaBankMapper.xml | WaBankDao | ✅ 已完成 |
| 14 | WaBannerMapper.xml | WaBannerDao | ✅ 已完成 |
说明:XML 文件已创建基础结构,使用 MyBatis Plus 的 BaseMapper,常用的 CRUD 操作无需手动编写 SQL。
3. ✅ 数据库建表 SQL 脚本创建
文件位置:sql/wa_consignment_tables.sql
包含内容:
- 14 张数据表的完整建表语句
- 所有字段定义和注释
- 主键、唯一键、普通索引定义
- 表引擎和字符集配置
- 初始化数据(商品分类)
表清单:
- wa_users - 寄卖服务用户表
- wa_goods - 商品表
- wa_merchandise - 寄售商品表
- wa_order - 订单表
- wa_category - 商品分类表
- wa_address - 收货地址表
- wa_money_log - 余额变动表
- wa_coupon_log - 优惠券变动表
- wa_selfbonus_log - 个人奖金变动表
- wa_sharebonus_log - 推广奖金变动表
- wa_withdraw - 提现表
- wa_alipay - 用户支付宝表
- wa_bank - 用户银行卡表
- wa_banner - 轮播图表
使用方法:
# 连接到 MySQL 数据库
mysql -u root -p your_database_name
# 执行建表脚本
source sql/wa_consignment_tables.sql
4. ✅ 拦截器配置更新
文件位置:crmeb-common/src/main/java/com/zbkj/common/token/FrontTokenComponent.java
更新内容:在 checkRouter 方法中添加了商品寄卖服务模块不需要登录验证的接口路由
新增的公开访问路由:
"api/user/login", // 用户登录
"api/user/register", // 用户注册
"api/goods/category", // 获取商品分类
"api/goods/list", // 获取商品列表
"api/goods/detail", // 获取商品详情
"api/index/banner", // 获取轮播图
"api/index/get", // 获取首页配置
"api/sms/send" // 发送短信验证码
5. ✅ Service 实现类创建
已创建:
WaUserServiceImpl.java- 用户服务实现类(包含完整的登录、注册、获取信息等逻辑)
其他 8 个 Service 实现类状态: 由于业务逻辑复杂,需要根据实际业务需求完善,建议采用以下方式:
-
WaGoodsServiceImpl - 商品服务
- 实现商品分类查询
- 实现商品列表查询
- 实现商品详情查询
-
WaOrderServiceImpl - 订单服务
- 实现订单创建(抢单)
- 实现订单支付
- 实现订单确认
- 实现订单取消
- 实现订单转拍
- 实现订单列表和详情查询
-
WaAddressServiceImpl - 地址服务
- 实现地址的增删改查
- 实现默认地址设置
-
WaMoneyServiceImpl - 财务服务
- 实现财务记录查询
- 实现提现申请
- 实现财务变动日志记录
-
WaPayServiceImpl - 支付服务
- 实现支付宝绑定
- 实现银行卡绑定
- 实现支付信息查询
-
WaShareServiceImpl - 分享推广服务
- 实现分享数据统计
- 实现粉丝列表查询
-
WaIndexServiceImpl - 首页服务
- 实现轮播图查询
- 实现配置数据查询
-
WaSmsServiceImpl - 短信服务
- 实现短信验证码发送
- 实现验证码验证
二、Service 实现类编写指南
2.1 基本结构模板
package com.zbkj.front.service.impl;
import com.zbkj.common.token.FrontTokenComponent;
import com.zbkj.front.service.XXXService;
import com.zbkj.service.dao.consignment.XXXDao;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Slf4j
@Service
public class XXXServiceImpl implements XXXService {
@Autowired
private XXXDao xxxDao;
@Autowired
private FrontTokenComponent frontTokenComponent;
// 实现接口方法...
}
2.2 获取当前用户ID
Integer userId = frontTokenComponent.getUserId();
if (userId == null) {
throw new CrmebException("请先登录");
}
2.3 分页查询示例
@Override
public PageInfo<XXXResponse> getList(PageParamRequest pageParamRequest) {
PageHelper.startPage(pageParamRequest.getPage(), pageParamRequest.getLimit());
LambdaQueryWrapper<XXX> wrapper = new LambdaQueryWrapper<>();
wrapper.orderByDesc(XXX::getCreatedAt);
List<XXX> list = xxxDao.selectList(wrapper);
// 转换为 Response 对象
List<XXXResponse> responseList = list.stream()
.map(this::convertToResponse)
.collect(Collectors.toList());
return new PageInfo<>(responseList);
}
2.4 事务处理示例
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean createOrder(OrderRequest request) {
// 1. 检查库存
// 2. 创建订单
// 3. 扣减库存
// 4. 记录日志
return true;
}
三、数据库部署说明
3.1 执行建表脚本
# 1. 登录 MySQL
mysql -u root -p
# 2. 选择数据库
use your_database_name;
# 3. 执行建表脚本
source /path/to/sql/wa_consignment_tables.sql;
# 4. 验证表是否创建成功
show tables like 'wa_%';
# 5. 检查表结构
desc wa_users;
3.2 初始化数据
建表脚本中已包含商品分类的初始化数据:
- 手机数码
- 家用电器
- 服装鞋帽
- 图书音像
- 运动户外
四、测试建议
4.1 单元测试
建议为每个 Service 方法编写单元测试:
@RunWith(SpringRunner.class)
@SpringBootTest
public class WaUserServiceTest {
@Autowired
private WaUserService waUserService;
@Test
public void testLogin() {
WaUserLoginRequest request = new WaUserLoginRequest();
request.setAccount("18888888888");
request.setPassword("123456");
WaLoginResponse response = waUserService.login(request);
assertNotNull(response.getToken());
}
}
4.2 接口测试
使用 Postman 或其他工具测试 API 接口:
- 用户注册
POST /api/user/register
Content-Type: application/json
{
"mobile": "18888888888",
"password": "123456",
"code": "123456",
"inviteCode": ""
}
- 用户登录
POST /api/user/login
Content-Type: application/json
{
"account": "18888888888",
"password": "123456"
}
- 获取用户信息(需要Token)
POST /api/user/info
Authori-zation: Bearer YOUR_TOKEN
五、注意事项
- 密码加密:使用
CrmebUtil.encryptPassword()方法加密密码 - 事务处理:涉及多表操作时使用
@Transactional注解 - 异常处理:使用
CrmebException抛出业务异常 - 日志记录:使用
@Slf4j注解记录关键操作日志 - Token 验证:通过
FrontTokenComponent获取当前用户信息 - 分页处理:使用
PageHelper和PageInfo处理分页 - 时间处理:统一使用
Date类型,数据库使用datetime类型 - 金额处理:统一使用
BigDecimal类型,避免精度丢失
六、下一步工作
- ⏳ 完善 Service 实现类:根据业务需求实现剩余 8 个 Service 的业务逻辑
- ⏳ 编写单元测试:为所有 Service 方法编写单元测试
- ⏳ 接口测试:使用 Postman 测试所有 API 接口
- ⏳ 性能优化:对频繁查询的接口添加缓存
- ⏳ 安全加固:添加接口防刷、限流等安全措施
- ⏳ API 文档:使用 Swagger 生成完整的 API 文档
七、文件清单汇总
7.1 实体类(14个)
crmeb-common/src/main/java/com/zbkj/common/model/consignment/
7.2 Request 类(8个)
crmeb-common/src/main/java/com/zbkj/common/request/
7.3 Response 类(9个)
crmeb-common/src/main/java/com/zbkj/common/response/
7.4 Controller 类(9个)
crmeb-front/src/main/java/com/zbkj/front/controller/
7.5 Service 接口(9个)
crmeb-front/src/main/java/com/zbkj/front/service/
7.6 Service 实现类(部分完成)
crmeb-front/src/main/java/com/zbkj/front/service/impl/- ✅ WaUserServiceImpl.java
- ⏳ 其他 8 个实现类待完善
7.7 Dao 接口(14个)
crmeb-service/src/main/java/com/zbkj/service/dao/consignment/
7.8 Mapper XML(14个)
crmeb-service/src/main/resources/mapper/consignment/
7.9 SQL 脚本(1个)
sql/wa_consignment_tables.sql
维护人员: AI Assistant
完成日期: 2025-11-08
文档状态: 基础框架已完成,业务逻辑待完善