本文档描述了从 alien-store(app端商户)迁移到 alien-store-platform(web端商户)的店铺入住申请草稿相关接口。
接口描述:保存商户填写的店铺入住申请草稿信息,支持随时保存,方便商户分多次填写。
POST /alienStore/store/info/saveStoreInfoDraftStoreInfoController.saveStoreInfoDraft()StoreInfoServiceImpl.saveStoreInfoDraft()POST /alienStorePlatform/storeManage/saveStoreDraftStoreManageController.saveStoreDraft()StoreManageServiceImpl.saveStoreDraft()Content-Type: application/json
Body 参数:StoreInfoDraft 对象
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| storeUserId | Integer | 是 | 商家用户ID(store_user 表 id) |
| storeName | String | 否 | 门店名称 |
| businessStatus | Integer | 否 | 营业状态(见字典表 businessStatus) |
| storeTel | String | 否 | 门店电话 |
| storeCapacity | Integer | 否 | 容纳人数 |
| storeArea | Integer | 否 | 门店面积(见字典表 storeArea) |
| storeAddress | String | 否 | 门店地址 |
| storeBlurb | String | 否 | 门店简介 |
| storeType | String | 否 | 门店类型,多选(见字典表 storeType) |
| isChain | Integer | 否 | 是否连锁(0:否, 1:是) |
| storePosition | String | 否 | 经度,纬度 |
| storePass | String | 否 | 门店密码 |
| passType | Integer | 否 | 密码状态(0:初始密码, 1:已修改) |
| storeStatus | Integer | 否 | 门店状态(见字典表 storeStatus) |
| businessSection | Integer | 否 | 经营板块ID(词典表 business_section) |
| businessSectionName | String | 否 | 经营板块名称 |
| businessTypes | String | 否 | 经营种类IDs(逗号分隔) |
| businessTypesName | String | 否 | 经营种类名称(逗号分隔) |
| queryAddress | String | 否 | 查询经纬度时查询地点存储 |
| administrativeRegionProvinceName | String | 否 | 行政区域省名称(自动填充) |
| administrativeRegionProvinceAdcode | String | 否 | 行政区域省adcode |
| administrativeRegionCityName | String | 否 | 行政区域市名称(自动填充) |
| administrativeRegionCityAdcode | String | 否 | 行政区域市adcode |
| administrativeRegionDistrictName | String | 否 | 行政区域区名称(自动填充) |
| administrativeRegionDistrictAdcode | String | 否 | 行政区域区adcode |
| businessLicenseUrl | String | 否 | 营业执照地址(JSON字符串) |
| contractUrl | String | 否 | 合同地址(JSON字符串) |
| foodLicenceUrl | String | 否 | 经营许可证地址(JSON字符串) |
请求示例:
{
"storeUserId": 123,
"storeName": "张三的餐厅",
"storeTel": "0371-12345678",
"storeAddress": "河南省郑州市金水区某某路123号",
"administrativeRegionProvinceAdcode": "410000",
"administrativeRegionCityAdcode": "410100",
"administrativeRegionDistrictAdcode": "410105",
"businessSection": 1,
"businessTypes": "1,2,3",
"storePosition": "113.625368,34.746599",
"businessLicenseUrl": "[\"https://example.com/license1.jpg\"]"
}
成功响应:
{
"code": 200,
"msg": "草稿保存成功",
"data": true,
"success": true
}
失败响应:
{
"code": 500,
"msg": "草稿保存失败",
"data": null,
"success": false
}
行政区域处理:
EssentialCityCodeMapper 从 essential_city_code 表查询空字段处理:
businessLicenseUrl、contractUrl、foodLicenceUrlnull数据插入:
StoreInfoDraftMapper 插入草稿数据createdTime、updatedTime 等字段接口描述:查询指定商户用户最新保存的店铺入住申请草稿。
GET /alienStore/store/info/selectDraftByUserIdStoreInfoController.selectDraftByUserId()StoreInfoServiceImpl.selectDraftByUserId()GET /alienStorePlatform/storeManage/getStoreDraftStoreManageController.getStoreDraft()StoreManageServiceImpl.getStoreDraft()Query 参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| storeUserId | int | 是 | 商户用户ID |
请求示例:
GET /alienStorePlatform/storeManage/getStoreDraft?storeUserId=123
成功响应(有草稿):
{
"code": 200,
"msg": "success",
"data": {
"id": 1,
"storeUserId": 123,
"storeName": "张三的餐厅",
"storeTel": "0371-12345678",
"storeAddress": "河南省郑州市金水区某某路123号",
"administrativeRegionProvinceName": "河南省",
"administrativeRegionProvinceAdcode": "410000",
"administrativeRegionCityName": "郑州市",
"administrativeRegionCityAdcode": "410100",
"administrativeRegionDistrictName": "金水区",
"administrativeRegionDistrictAdcode": "410105",
"businessSection": 1,
"businessSectionName": "餐饮",
"businessTypes": "1,2,3",
"businessTypesName": "中餐,西餐,快餐",
"storePosition": "113.625368,34.746599",
"businessLicenseUrl": "[\"https://example.com/license1.jpg\"]",
"createdTime": "2025-01-15 10:30:00",
"updatedTime": "2025-01-15 14:20:00"
},
"success": true
}
成功响应(无草稿):
{
"code": 200,
"msg": "success",
"data": null,
"success": true
}
失败响应:
{
"code": 500,
"msg": "查询失败: {错误信息}",
"data": null,
"success": false
}
查询条件:
storeUserId 查询草稿记录createdTime 降序排序数据返回:
null软删除处理:
deleteFlag=1 的记录| 字段名 | 类型 | 说明 |
|---|---|---|
| id | INT | 主键,自增 |
| store_user_id | INT | 商家用户ID(store_user 表 id) |
| store_name | VARCHAR(100) | 门店名称 |
| business_status | INT | 营业状态 |
| store_tel | VARCHAR(20) | 门店电话 |
| store_capacity | INT | 容纳人数 |
| store_area | INT | 门店面积 |
| store_address | VARCHAR(255) | 门店地址 |
| store_blurb | TEXT | 门店简介 |
| store_type | VARCHAR(50) | 门店类型 |
| is_chain | INT | 是否连锁 |
| expiration_time | DATETIME | 到期时间 |
| store_position | VARCHAR(50) | 经度,纬度 |
| store_pass | VARCHAR(50) | 门店密码 |
| pass_type | INT | 密码状态 |
| store_status | INT | 门店状态 |
| business_section | INT | 经营板块ID |
| business_section_name | VARCHAR(50) | 经营板块名称 |
| business_types | VARCHAR(255) | 经营种类IDs |
| business_types_name | VARCHAR(255) | 经营种类名称 |
| store_application_status | INT | 店铺申请审核状态 |
| query_address | VARCHAR(255) | 查询经纬度时查询地点 |
| administrative_region_province_name | VARCHAR(50) | 行政区域省名称 |
| administrative_region_province_adcode | VARCHAR(20) | 行政区域省adcode |
| administrative_region_city_name | VARCHAR(50) | 行政区域市名称 |
| administrative_region_city_adcode | VARCHAR(20) | 行政区域市adcode |
| administrative_region_district_name | VARCHAR(50) | 行政区域区名称 |
| administrative_region_district_adcode | VARCHAR(20) | 行政区域区adcode |
| logout_flag | INT | 注销账号(0:正常,1:已注销) |
| logout_reason | VARCHAR(255) | 注销原因 |
| logout_time | DATETIME | 注销时间 |
| business_license_url | TEXT | 营业执照地址(JSON) |
| contract_url | TEXT | 合同地址(JSON) |
| food_licence_url | TEXT | 经营许可证地址(JSON) |
| delete_flag | INT | 删除标记(0:未删除, 1:已删除) |
| created_time | DATETIME | 创建时间 |
| created_user_id | INT | 创建人ID |
| updated_time | DATETIME | 修改时间 |
| updated_user_id | INT | 修改人ID |
alien-store-platform/src/main/java/shop/alien/storeplatform/controller/StoreManageController.javaalien-store-platform/src/main/java/shop/alien/storeplatform/service/StoreManageService.javaalien-store-platform/src/main/java/shop/alien/storeplatform/service/impl/StoreManageServiceImpl.javaalien-entity/src/main/java/shop/alien/entity/store/StoreInfoDraft.javaalien-entity/src/main/java/shop/alien/mapper/StoreInfoDraftMapper.java测试用例 1:完整信息保存
curl -X POST http://localhost:8080/alienStorePlatform/storeManage/saveStoreDraft \
-H "Content-Type: application/json" \
-d '{
"storeUserId": 123,
"storeName": "测试餐厅",
"storeTel": "0371-12345678",
"storeAddress": "河南省郑州市金水区测试路123号",
"administrativeRegionProvinceAdcode": "410000",
"administrativeRegionCityAdcode": "410100",
"administrativeRegionDistrictAdcode": "410105",
"businessSection": 1,
"businessTypes": "1,2",
"storePosition": "113.625368,34.746599"
}'
测试用例 2:部分信息保存(草稿功能)
curl -X POST http://localhost:8080/alienStorePlatform/storeManage/saveStoreDraft \
-H "Content-Type: application/json" \
-d '{
"storeUserId": 123,
"storeName": "测试餐厅"
}'
测试用例 3:空字段处理
curl -X POST http://localhost:8080/alienStorePlatform/storeManage/saveStoreDraft \
-H "Content-Type: application/json" \
-d '{
"storeUserId": 123,
"storeName": "测试餐厅",
"businessLicenseUrl": "",
"contractUrl": "",
"foodLicenceUrl": ""
}'
测试用例 1:查询存在的草稿
curl -X GET http://localhost:8080/alienStorePlatform/storeManage/getStoreDraft?storeUserId=123
测试用例 2:查询不存在的草稿
curl -X GET http://localhost:8080/alienStorePlatform/storeManage/getStoreDraft?storeUserId=999999
场景 1:分步填写
场景 2:多次保存覆盖
场景 3:行政区域自动填充
nullnull 而不是报错saveStoreDraft - 保存未完成的申请信息applyStore - 提交完整的入住申请并进入审核流程store_info_draft vs store_info| 版本 | 日期 | 说明 | 作者 |
|---|---|---|---|
| 1.0.0 | 2025-01-xx | 初始版本,迁移草稿功能 | ssk |
如有问题,请联系: