6.4 KiB
6.4 KiB
公开订单提交功能 - 快速部署指南
一、功能说明
本功能提供一个公开的订单提交页面,特点如下:
✅ 无需登录 - 直接访问即可使用
✅ 接口限流 - 每IP每分钟最多3次请求
✅ 详细日志 - 记录所有请求的完整信息
✅ 安全保护 - 只允许提交订单,拒绝其他指令
✅ 简化界面 - 去掉历史记录,只保留核心功能
二、新增文件清单
前端文件
d:\code\ruoyi-vue\src\views\public\order-submit\index.vue # 公开订单提交页面
d:\code\ruoyi-vue\src\api\public\order.js # API接口文件
后端文件
d:\code\RuoYi-Vue-master\ruoyi-java\ruoyi-admin\src\main\java\com\ruoyi\web\controller\public_\PublicOrderController.java # 公开控制器
文档文件
d:\code\RuoYi-Vue-master\ruoyi-java\doc\公开订单提交功能说明.md
d:\code\RuoYi-Vue-master\ruoyi-java\doc\公开订单提交-快速部署指南.md
三、修改文件清单
前端修改
d:\code\ruoyi-vue\src\router\index.js
修改内容:添加公开订单提交页面路由(无需登录)
后端修改
d:\code\RuoYi-Vue-master\ruoyi-java\ruoyi-framework\src\main\java\com\ruoyi\framework\config\SecurityConfig.java
修改内容:添加 /public/** 路径到公开访问白名单
四、部署步骤
步骤1:后端部署
1.1 编译项目
cd d:\code\RuoYi-Vue-master\ruoyi-java
mvn clean package -DskipTests
1.2 重启后端服务
# Windows
ry.bat
# Linux
./ry.sh
1.3 验证后端
检查日志,确保启动成功,无报错。
步骤2:前端部署
2.1 安装依赖(如果需要)
cd d:\code\ruoyi-vue
npm install
2.2 开发环境运行
npm run dev
2.3 生产环境构建
npm run build:prod
2.4 部署到Web服务器
将 dist 目录的内容部署到Nginx或其他Web服务器。
步骤3:验证部署
3.1 访问页面
打开浏览器,访问:
http://localhost/public/order-submit
3.2 提交测试订单
在页面中输入以下测试数据:
单:
2025-01-21 001
备注:测试订单
分销标记:H-TF
型号:ZQD180F-EB200
链接:https://item.jd.com/123456.html
下单付款:1650
后返金额:50
地址:张三13800138000上海市浦东新区张江高科技园区
物流链接:https://test.com
订单号:1234567890
下单人:张三
3.3 查看响应
页面应显示提交成功的响应信息。
3.4 检查日志
查看后端日志文件,应看到类似以下内容:
======================================
公开订单提交 - 开始
客户端IP: 127.0.0.1
User-Agent: Mozilla/5.0...
请求时间: 2025-01-21 10:00:00
...
公开订单提交 - 结束(成功)
======================================
3.5 测试限流
快速提交4次订单,第4次应该被拒绝,提示"访问过于频繁"。
五、访问地址
开发环境
前端页面:http://localhost:80/public/order-submit
后端接口:http://localhost:8080/public/order/submit
生产环境
前端页面:http://your-domain.com/public/order-submit
后端接口:http://your-domain.com/api/public/order/submit
六、配置说明
限流配置
如需修改限流策略,编辑 PublicOrderController.java:
@RateLimiter(
key = CacheConstants.RATE_LIMIT_KEY,
time = 60, // 时间窗口(秒),可修改
count = 3, // 允许次数,可修改
limitType = LimitType.IP
)
修改后重新编译部署:
mvn clean package -DskipTests
日志配置
如需调整日志级别,编辑 logback.xml:
<!-- 设置公开订单控制器的日志级别 -->
<logger name="com.ruoyi.web.controller.public_" level="INFO"/>
七、安全建议
1. 启用HTTPS
生产环境务必启用HTTPS,保护数据传输安全。
2. 配置防火墙
只开放必要的端口(80/443)。
3. 监控异常
设置告警规则,监控以下情况:
- 错误率异常升高
- 限流触发频繁
- 可疑IP地址
4. 定期备份
定期备份订单数据和日志文件。
5. IP黑名单
如发现恶意IP,可在 SecurityConfig.java 中添加黑名单规则。
八、常见问题
Q1: 页面404怎么办?
检查清单:
- 前端路由配置是否正确
- 后端安全配置是否添加
/public/** - 前端是否正确构建和部署
- Web服务器配置是否正确
Q2: 接口403/401怎么办?
解决方法:
- 检查
SecurityConfig.java是否添加了.antMatchers("/public/**").permitAll() - 重新编译部署后端
- 清除浏览器缓存重试
Q3: 限流不生效怎么办?
检查清单:
- Redis服务是否正常运行
- 后端是否正确连接Redis
@RateLimiter注解是否正确配置
Q4: 日志没有记录怎么办?
解决方法:
- 检查
logback.xml日志级别配置 - 确认日志文件路径是否正确
- 检查文件写入权限
Q5: 提交后无响应怎么办?
排查步骤:
- 打开浏览器开发者工具,查看网络请求
- 检查后端日志是否有报错
- 检查订单格式是否正确
- 确认所有必填字段是否填写
九、分享链接
部署成功后,可以将以下链接分享给需要提交订单的用户:
http://your-domain.com/public/order-submit
建议同时提供:
- 订单格式说明
- 必填字段列表
- 示例订单数据
- 联系方式(遇到问题时)
十、监控仪表板
建议设置监控指标:
关键指标
- 请求总数:每日/每小时提交次数
- 成功率:提交成功的比例
- 平均响应时间:接口响应速度
- 限流触发次数:被限流的请求数量
- Top IP:请求最多的IP地址
告警规则
- 错误率 > 5% → 发送告警
- 平均响应时间 > 3秒 → 发送告警
- 单IP限流触发 > 10次/小时 → 发送告警
十一、后续优化建议
- 图形验证码:添加验证码防止机器人
- IP白名单:为信任的IP提供更高的限流额度
- 订单预览:提交前预览订单信息
- 批量提交:支持一次提交多个订单
- 提交历史:为用户提供本地提交历史记录
部署完成! 🎉
如有问题,请查看详细文档:公开订单提交功能说明.md