|
|
2 hafta önce | |
|---|---|---|
| .. | ||
| API_COUPON_MANAGEMENT.md | 4 hafta önce | |
| API_COUPON_VERIFY.md | 4 hafta önce | |
| API_INCOME_PAYMENT_CYCLE.md | 4 hafta önce | |
| API_MERCHANT_USER.md | 1 ay önce | |
| API_NOTICE_MANAGEMENT.md | 4 hafta önce | |
| API_NOTICE_MANAGEMENT_ALLREAD.md | 4 hafta önce | |
| API_NOTICE_MANAGEMENT_DETALIS.md | 4 hafta önce | |
| API_STORE_APPLY.md | 4 hafta önce | |
| API_STORE_DETAIL.md | 4 hafta önce | |
| API_STORE_DRAFT.md | 4 hafta önce | |
| API_TODAY_INCOME.md | 1 ay önce | |
| API_TODAY_ORDER_COUNT.md | 1 ay önce | |
| CHANGELOG_MERCHANT_AUTH.md | 1 ay önce | |
| DEVELOPMENT_SUMMARY.md | 1 ay önce | |
| LOGIN_USER_UTIL_README.md | 3 hafta önce | |
| OPERATIONAL_ACTIVITY_README.md | 2 hafta önce | |
| README_BASE_DATA.md | 1 ay önce | |
| README_MERCHANT_AUTH.md | 1 ay önce | |
| SECOND_ENTRUST_USER_README.md | 2 hafta önce | |
| SECOND_ENTRUST_USER_UPDATE_LOG.md | 2 hafta önce | |
| STORE_LICENSE_HISTORY_API.md | 2 hafta önce | |
| USER_AUTHENTICATION_GUIDE_AOP.md | 4 hafta önce | |
| WEBSOCKET_INTEGRATION.md | 4 hafta önce | |
| 商户登录util.md | 4 hafta önce | |
本次开发在 alien-store-platform 服务中新增了基础数据查询接口,将原 alien-store 服务中分散在不同 Controller 的基础数据查询接口统一整合到一个 BaseDataController 中,方便 web 端商户平台统一管理和调用。
接口路径: GET /baseData/getAddressPrompt
接口说明: 根据输入的地址关键词,返回高德地图的地址提示列表,支持按城市过滤
原接口路径: /alienStore/gaode/getInputPrompt
请求参数:
| 参数名 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
| addressName | String | 是 | 地址关键词 | "中关村" |
| city | String | 否 | 城市名称 | "北京市" |
请求示例:
GET /baseData/getAddressPrompt?addressName=中关村&city=北京市
响应示例:
{
"code": 200,
"success": true,
"msg": "操作成功",
"data": {
"status": "1",
"info": "OK",
"infocode": "10000",
"count": "10",
"tips": [
{
"id": "B000A8XZL4",
"name": "中关村",
"district": "北京市海淀区",
"adcode": "110108",
"location": "116.313676,39.982718",
"address": "中关村大街",
"typecode": "190301"
}
]
}
}
接口路径: GET /baseData/getDistrict
接口说明: 根据行政区划代码获取省市区数据,支持级联查询
原接口路径: /alienStore/gaode/getDistrict
请求参数:
| 参数名 | 类型 | 必填 | 说明 | 默认值 | 示例 |
|---|---|---|---|---|---|
| adCode | String | 否 | 行政区划代码 | 100000 | "100000" |
行政区划代码说明:
100000:中国(返回所有省级数据)410000:河南省(返回河南省所有市级数据)410300:洛阳市(返回洛阳市所有区县数据)请求示例:
# 查询所有省份
GET /baseData/getDistrict?adCode=100000
# 查询河南省所有城市
GET /baseData/getDistrict?adCode=410000
# 查询洛阳市所有区县
GET /baseData/getDistrict?adCode=410300
响应示例:
{
"code": 200,
"success": true,
"msg": "操作成功",
"data": {
"status": "1",
"info": "OK",
"infocode": "10000",
"districts": [
{
"citycode": [],
"adcode": "100000",
"name": "中华人民共和国",
"center": "116.3683244,39.915085",
"level": "country",
"districts": [
{
"citycode": "010",
"adcode": "110000",
"name": "北京市",
"center": "116.405285,39.904989",
"level": "province"
}
]
}
]
}
}
接口路径: GET /baseData/getBusinessSection
接口说明: 获取所有经营板块数据,用于商户选择经营类型
原接口路径: /alienStore/store/info/getBusinessSection
请求参数: 无
请求示例:
GET /baseData/getBusinessSection
响应示例:
{
"code": 200,
"success": true,
"msg": "操作成功",
"data": [
{
"id": 1,
"typeName": "business_section",
"dictId": "1",
"dictDetail": "餐饮美食",
"parentId": 0
},
{
"id": 2,
"typeName": "business_section",
"dictId": "2",
"dictDetail": "休闲娱乐",
"parentId": 0
},
{
"id": 3,
"typeName": "business_section",
"dictId": "3",
"dictDetail": "生活服务",
"parentId": 0
}
]
}
接口路径: GET /baseData/getBusinessTypes
接口说明: 根据经营板块ID获取该板块下的所有经营种类
原接口路径: /alienStore/store/info/getBusinessSectionTypes
请求参数:
| 参数名 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
| parentId | String | 是 | 经营板块ID(dictId) | "1" |
请求示例:
GET /baseData/getBusinessTypes?parentId=1
响应示例:
{
"code": 200,
"success": true,
"msg": "操作成功",
"data": [
{
"id": 101,
"typeName": "business_section",
"dictId": "101",
"dictDetail": "中餐",
"parentId": 1
},
{
"id": 102,
"typeName": "business_section",
"dictId": "102",
"dictDetail": "西餐",
"parentId": 1
},
{
"id": 103,
"typeName": "business_section",
"dictId": "103",
"dictDetail": "火锅",
"parentId": 1
},
{
"id": 104,
"typeName": "business_section",
"dictId": "104",
"dictDetail": "烧烤",
"parentId": 1
}
]
}
用户输入地址关键词
↓
调用 /baseData/getAddressPrompt 接口
↓
系统查询城市编码(如果指定城市)
↓
调用高德地图输入提示接口
↓
返回地址提示列表
1. 查询所有省份
GET /baseData/getDistrict?adCode=100000
2. 用户选择省份(例如:河南省,adCode=410000)
GET /baseData/getDistrict?adCode=410000
3. 用户选择城市(例如:洛阳市,adCode=410300)
GET /baseData/getDistrict?adCode=410300
4. 用户选择区县完成
1. 获取所有经营板块
GET /baseData/getBusinessSection
2. 用户选择经营板块(例如:餐饮美食,dictId=1)
GET /baseData/getBusinessTypes?parentId=1
3. 用户选择经营种类完成
在 Nacos 配置中心的 alien-store-platform.yml 配置文件中,需要添加以下高德地图相关配置:
# 高德地图配置
gaode:
# 高德地图API Key
key: your_gaode_api_key_here
# 地理编码URL(地址转经纬度)
geoUrl: https://restapi.amap.com/v3/geocode/geo?address=%s&key=%s
# 输入提示URL
geoListUrl: https://restapi.amap.com/v3/assistant/inputtips?keywords=%s&key=%s&city=%s
# 行政区划URL
getDistrict: https://restapi.amap.com/v3/config/district?key=%s&keywords=%s&subdistrict=1
# 距离计算URL
distanceUrl: https://restapi.amap.com/v3/direction/driving?origin=%s,%s&destination=%s,%s&key=%s
# 直线距离URL
distanceTypeUrl: https://restapi.amap.com/v3/direction/driving?origin=%s,%s&destination=%s,%s&key=%s&strategy=%s
# 周边搜索URL
nearUrl: https://restapi.amap.com/v3/place/around?location=%s,%s&key=%s&radius=%s&offset=%s&page=%s
# 地铁站查询URL
subwayUrl: https://restapi.amap.com/v3/place/text?key=%s&location=%s,%s&keywords=%s&radius=%s&types=%s
# 逆地理编码URL(经纬度转地址)
addressUrl: https://restapi.amap.com/v3/geocode/regeo?location=%s,%s&key=%s&radius=%s&extensions=%s
注意事项:
alien-store 服务的 Nacos 配置中获取存储城市编码信息,用于地址搜索时的城市过滤。
表结构:
CREATE TABLE `essential_city_code` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`area_code` varchar(20) DEFAULT NULL COMMENT '行政区划代码',
`area_name` varchar(100) DEFAULT NULL COMMENT '区域名称',
`city_code` varchar(20) DEFAULT NULL COMMENT '城市编码',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
存储经营板块和经营种类的字典数据。
表结构:
CREATE TABLE `store_dictionary` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`type_name` varchar(50) DEFAULT NULL COMMENT '字典类型名称',
`dict_id` varchar(20) DEFAULT NULL COMMENT '字典ID',
`dict_detail` varchar(200) DEFAULT NULL COMMENT '字典详情',
`parent_id` int(11) DEFAULT NULL COMMENT '父节点ID',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
数据说明:
type_name = 'business_section' 表示经营板块/经营种类dict_id = '0' 表示根节点(不显示)dict_id != '0' AND parent_id = 根节点ID 表示经营板块parent_id = 经营板块ID 表示经营种类alien-store-platform/
├── src/main/java/shop/alien/storeplatform/
│ ├── controller/
│ │ └── BaseDataController.java # 基础数据查询控制器
│ ├── service/
│ │ ├── BaseDataService.java # 基础数据服务接口
│ │ └── impl/
│ │ └── BaseDataServiceImpl.java # 基础数据服务实现
│ └── util/
│ └── GaoDeMapApiUtil.java # 高德地图API工具类
1. BaseDataController
/baseData2. BaseDataService & BaseDataServiceImpl
3. GaoDeMapApiUtil
| 功能 | 原接口(alien-store) | 新接口(alien-store-platform) |
|---|---|---|
| 地址提示 | /gaode/getInputPrompt |
/baseData/getAddressPrompt |
| 行政区划 | /gaode/getDistrict |
/baseData/getDistrict |
| 经营板块 | /store/info/getBusinessSection |
/baseData/getBusinessSection |
| 经营种类 | /store/info/getBusinessSectionTypes |
/baseData/getBusinessTypes |
# 测试1:不指定城市
curl -X GET "http://localhost:8080/baseData/getAddressPrompt?addressName=中关村"
# 测试2:指定城市
curl -X GET "http://localhost:8080/baseData/getAddressPrompt?addressName=中关村&city=北京市"
# 测试1:查询所有省份
curl -X GET "http://localhost:8080/baseData/getDistrict?adCode=100000"
# 测试2:查询河南省所有城市
curl -X GET "http://localhost:8080/baseData/getDistrict?adCode=410000"
# 测试3:查询洛阳市所有区县
curl -X GET "http://localhost:8080/baseData/getDistrict?adCode=410300"
# 测试1:查询所有经营板块
curl -X GET "http://localhost:8080/baseData/getBusinessSection"
# 测试2:查询板块ID为1的所有经营种类
curl -X GET "http://localhost:8080/baseData/getBusinessTypes?parentId=1"
essential_city_code 表数据完整store_dictionary 表数据完整A: 检查以下几点:
A: 确保 adCode 参数正确,可以参考高德地图的行政区划代码表
A: 检查 parentId 是否正确,确认数据库中该板块下是否有经营种类数据
开发完成时间: 2025-01-xx
开发人员: AI Assistant
版本号: v1.0.0