一、配送范围设置(以常见小程序后台为例)
1. 地图工具配置
- 选择地图API:
- 推荐使用腾讯地图/高德地图JS API(需申请开发者Key)。
- 示例:在腾讯位置服务官网申请Key,并配置到小程序后台。
- 绘制配送区域:
- 使用地图工具(如腾讯地图的“区域选择器”)绘制多边形配送范围。
- 保存为GeoJSON格式或坐标点数组(如`[[x1,y1], [x2,y2], ...]`)。
2. 后台配置
- 进入小程序管理后台:
- 路径:`设置` → `配送管理` → `配送范围`。
- 上传坐标数据:
- 将GeoJSON或坐标点粘贴到后台输入框,或通过文件上传。
- 设置配送规则:
- 基础运费:如`5元`。
- 免运费门槛:如`满50元免运费`。
- 特殊区域:可单独设置偏远地区运费(如`+10元`)。
3. 前端验证逻辑
- 用户地址校验:
- 调用地图API将用户输入的地址转为坐标。
- 使用`turf.js`等库判断坐标是否在配送区域内。
```javascript
// 示例:Turf.js判断点是否在多边形内
const point = turf.point([userLng, userLat]);
const polygon = turf.polygon([[配送点数组]]);
const isInside = turf.booleanPointInPolygon(point, polygon);
```
- 提示用户:
- 若不在范围内,显示提示:“当前地址暂不支持配送”。
二、万象源码部署(简化版)
1. 环境准备
- 服务器要求:
- 云服务器(如腾讯云/阿里云),CentOS 7+。
- 安装Node.js(LTS版本)、Nginx、MySQL。
- 域名与SSL:
- 备案域名 + SSL证书(免费证书可用Lets Encrypt)。
2. 源码部署步骤
- 下载源码:
- 从官方渠道获取万象小程序源码(通常为压缩包)。
- 上传代码:
```bash
通过SFTP上传至服务器/home/project目录
scp -r /本地路径 root@服务器IP:/home/project
```
- 安装依赖:
```bash
cd /home/project
npm install --production
```
- 配置环境变量:
- 修改`.env`文件,填写数据库、地图API Key等:
```
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=your_password
MAP_KEY=腾讯地图Key
```
3. 数据库初始化
- 导入SQL文件:
```bash
mysql -u root -p < /home/project/database.sql
```
- 修改配置:
- 确保`config/database.js`中的连接信息与`.env`一致。
4. 启动服务
- 开发模式:
```bash
npm run dev
```
- 生产模式:
```bash
npm run build
pm2 start ecosystem.config.js 使用PM2守护进程
```
5. Nginx配置
- 反向代理:
```nginx
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://127.0.0.1:3000; 对应Node.js端口
proxy_set_header Host $host;
}
}
```
- 重启Nginx:
```bash
systemctl restart nginx
```
三、常见问题解决
1. 配送范围不生效:
- 检查坐标数据是否正确,前端逻辑是否调用校验接口。
2. 部署后502错误:
- 查看Node.js日志(`pm2 logs`),检查端口冲突或依赖缺失。
3. 地图显示空白:
- 确认API Key已开通小程序权限,且域名已加入白名单。
四、优化建议
- 动态配置:将配送范围存储在数据库,支持后台动态修改。
- 缓存策略:对频繁查询的配送区域使用Redis缓存。
- 测试工具:使用Postman模拟地址请求,验证配送逻辑。
通过以上步骤,可快速完成水果小程序的配送范围设置及万象源码部署。如遇具体技术问题,建议查阅源码文档或联系技术支持。