|
|
@@ -21,26 +21,31 @@
|
|
21
|
21
|
|
|
22
|
22
|
```text
|
|
23
|
23
|
baqing-shop/src/main/java/com/ruoyi/web/modules/home/
|
|
24
|
|
-├── controller/HomeAppController.java # /api/home/categories、/api/home/hot-goods
|
|
|
24
|
+├── controller/HomeAppController.java # /api/home/banners、/categories、/hot-goods
|
|
25
|
25
|
├── service/IHomeAppService.java
|
|
26
|
26
|
├── service/impl/HomeAppServiceImpl.java
|
|
|
27
|
+├── mapper/HomeAppMapper.java
|
|
|
28
|
+├── vo/HomeBannerVO.java
|
|
27
|
29
|
├── vo/HomeCategoryNavVO.java
|
|
28
|
30
|
├── vo/HomeHotGoodsVO.java
|
|
29
|
31
|
└── constant/HomeConstants.java
|
|
30
|
32
|
|
|
31
|
|
-已有(content 模块,保持不变):
|
|
32
|
|
-└── com.ruoyi.web.modules.content.controller.HomeBannerAppController
|
|
33
|
|
- GET /api/home/banners
|
|
|
33
|
+resources/mapper/home/
|
|
|
34
|
+└── HomeAppMapper.xml # biz_home_banner / biz_goods_category / biz_goods 只读 SQL
|
|
34
|
35
|
|
|
35
|
|
-resources/mapper/home/ # 可选:若 SQL 不扩展现有 Mapper,则新增 HomeGoodsMapper.xml
|
|
|
36
|
+平台 Banner CRUD(content 模块,保持不变):
|
|
|
37
|
+└── com.ruoyi.web.modules.content
|
|
|
38
|
+ ├── controller/BannerController # /agri/banner
|
|
|
39
|
+ ├── service/IBannerService # 平台维护
|
|
|
40
|
+ └── mapper/BizHomeBannerMapper
|
|
36
|
41
|
```
|
|
37
|
42
|
|
|
38
|
|
-> **说明:** Banner **不迁入** home 包,继续由 `IBannerService.listBannersForApp()` 提供;home 模块仅 **类目导航 + 热销**。
|
|
|
43
|
+> **说明:** C 端首页 **三读接口** 均归 `home` 包;Banner 列表由 `HomeAppMapper.selectBannersForHome` 直读 `biz_home_banner`(**不经过** `IBannerService`)。平台 CRUD 仍走 content 模块。
|
|
39
|
44
|
|
|
40
|
45
|
### 1.2 协作链
|
|
41
|
46
|
|
|
42
|
47
|
```text
|
|
43
|
|
-biz_home_banner ──► GET /api/home/banners (content · 已实现)
|
|
|
48
|
+biz_home_banner ──► GET /api/home/banners (home · 已实现)
|
|
44
|
49
|
biz_goods_category(shop_id IS NULL, level=1)──► GET /api/home/categories
|
|
45
|
50
|
biz_goods + biz_shop ──► GET /api/home/hot-goods (Top6)
|
|
46
|
51
|
|
|
|
@@ -63,8 +68,8 @@ biz_goods + biz_shop ──► GET /api/home/hot-goods (Top6)
|
|
63
|
68
|
|
|
64
|
69
|
| 接口 | 本模块用法 |
|
|
65
|
70
|
|------|------------|
|
|
66
|
|
-| **`IBannerService`** | **不经过** home Service;独立 Controller |
|
|
67
|
|
-| **`IPlatformCategoryService`** | 可复用查询逻辑;C 端建议 **专用 SQL**(仅 `show_flag=1` 一级) |
|
|
|
71
|
+| **`IBannerService`** | **C 端不调用**;仅平台 `/agri/banner` CRUD 使用 |
|
|
|
72
|
+| **`IPlatformCategoryService`** | 可复用查询逻辑;C 端 **专用 SQL**(`HomeAppMapper`,仅 `show_flag=1` 一级) |
|
|
68
|
73
|
| **`ICategoryFacade`** | 详情/下单用 `isCategoryVisible`;**首页类目 SQL 已过滤 show** |
|
|
69
|
74
|
| **`IGoodsFacade` / 商品详情** | 首页 **不调用**;详情页可购校验 |
|
|
70
|
75
|
|
|
|
@@ -147,22 +152,23 @@ ALTER TABLE `biz_goods`
|
|
147
|
152
|
|
|
148
|
153
|
| 方法 | 路径 | 提供方 | 说明 |
|
|
149
|
154
|
|------|------|--------|------|
|
|
150
|
|
-| GET | `/banners` | `HomeBannerAppController`(**已有**) | Banner 列表 |
|
|
151
|
|
-| GET | `/categories` | `HomeAppController`(**新增**) | 平台一级类目导航 |
|
|
152
|
|
-| GET | `/hot-goods` | `HomeAppController`(**新增**) | 热销 Top6 |
|
|
|
155
|
+| GET | `/banners` | `HomeAppController`(**已实现**) | Banner 列表 |
|
|
|
156
|
+| GET | `/categories` | `HomeAppController`(**已实现**) | 平台一级类目导航 |
|
|
|
157
|
+| GET | `/hot-goods` | `HomeAppController`(**已实现**) | 热销 Top6 |
|
|
153
|
158
|
|
|
154
|
159
|
**本期不提供:** `GET /api/home/index` 聚合接口、搜索 API、下拉刷新专用接口。
|
|
155
|
160
|
|
|
156
|
161
|
### 3.2 Banner `GET /api/home/banners`
|
|
157
|
162
|
|
|
158
|
|
-**已实现。** 详见《首页banner设置技术方案.md》§4.1。
|
|
|
163
|
+**已实现**(`home` 模块 · `HomeAppMapper.selectBannersForHome`)。平台维护规则见《首页banner设置技术方案.md》§4.1。
|
|
159
|
164
|
|
|
160
|
165
|
| 项 | 说明 |
|
|
161
|
166
|
|----|------|
|
|
162
|
|
-| SQL | `enable_flag=1 AND del_flag=0 ORDER BY sort_no, create_time` |
|
|
|
167
|
+| SQL | `enable_flag=1 AND del_flag=0 ORDER BY sort_no, create_time LIMIT 50` |
|
|
|
168
|
+| 常量 | `HomeConstants.BANNER_LIST_LIMIT = 50` |
|
|
163
|
169
|
| 前端 | 无效图跳过、零条隐藏轮播区(BN13);点击预览大图 |
|
|
164
|
170
|
|
|
165
|
|
-**`data` 元素:**
|
|
|
171
|
+**`data` 元素:** `HomeBannerVO[]`
|
|
166
|
172
|
|
|
167
|
173
|
| 字段 | 类型 | 说明 |
|
|
168
|
174
|
|------|------|------|
|
|
|
@@ -257,16 +263,19 @@ LIMIT 6
|
|
257
|
263
|
|
|
258
|
264
|
```text
|
|
259
|
265
|
HomeAppController
|
|
|
266
|
+ → IHomeAppService.listBanners()
|
|
260
|
267
|
→ IHomeAppService.listPlatformLevel1Nav()
|
|
261
|
268
|
→ IHomeAppService.listHotGoods()
|
|
262
|
269
|
|
|
263
|
270
|
HomeAppServiceImpl
|
|
264
|
|
- → BizGoodsCategoryMapper.selectPlatformLevel1Visible() # 新增方法
|
|
265
|
|
- → BizGoodsMapper.selectHotGoodsForHome(6) # 新增方法
|
|
|
271
|
+ → HomeAppMapper.selectBannersForHome(50)
|
|
|
272
|
+ → HomeAppMapper.selectPlatformLevel1Nav()
|
|
|
273
|
+ → HomeAppMapper.selectHotGoodsForHome(6)
|
|
266
|
274
|
```
|
|
267
|
275
|
|
|
268
|
276
|
| 方法 | 说明 |
|
|
269
|
277
|
|------|------|
|
|
|
278
|
+| `listBanners()` | 转 `HomeBannerVO`;SQL 过滤启用且未删 |
|
|
270
|
279
|
| `listPlatformLevel1Nav()` | 转 `HomeCategoryNavVO`;`categoryPic` 空时原样返回(前端占位图) |
|
|
271
|
280
|
| `listHotGoods()` | 转 `HomeHotGoodsVO`;`shopName` 来自 JOIN |
|
|
272
|
281
|
|
|
|
@@ -293,7 +302,7 @@ HomeAppServiceImpl
|
|
293
|
302
|
| HM1 | 热销 SQL **全平台**;无 `shop_id` 入参 |
|
|
294
|
303
|
| HM2 | `@Anonymous` |
|
|
295
|
304
|
| HM3~HM-S2 | 无搜索 API;前端占位 |
|
|
296
|
|
-| HM4 | `/banners` → BannerService |
|
|
|
305
|
+| HM4 | `/banners` → `HomeAppMapper` 直读 `biz_home_banner` |
|
|
297
|
306
|
| HM5~HM6 | `/categories`:`shop_id IS NULL` + level=1 + show=1 |
|
|
298
|
307
|
| HM7 | 跳转由 **C 端路由** 承担;本模块只出 `categoryId` |
|
|
299
|
308
|
| HM8~HM12 | `/hot-goods`:LIMIT 6 + 排序 + 字段 VO |
|
|
|
@@ -321,10 +330,11 @@ HomeAppServiceImpl
|
|
321
|
330
|
|
|
322
|
331
|
| 项 | 状态 |
|
|
323
|
332
|
|----|------|
|
|
324
|
|
-| `GET /api/home/banners` | **已实现**(content 模块) |
|
|
325
|
|
-| `GET /api/home/categories` | **待实现** |
|
|
326
|
|
-| `GET /api/home/hot-goods` | **待实现** |
|
|
327
|
|
-| `com.ruoyi.web.modules.home` 包 | **待创建** |
|
|
|
333
|
+| `GET /api/home/banners` | **已实现**(`home` 模块) |
|
|
|
334
|
+| `GET /api/home/categories` | **已实现** |
|
|
|
335
|
+| `GET /api/home/hot-goods` | **已实现** |
|
|
|
336
|
+| `com.ruoyi.web.modules.home` 包 | **已创建** |
|
|
|
337
|
+| `HomeAppServiceImplTest` / `HomeAppControllerTest` | **已实现**(24 用例) |
|
|
328
|
338
|
| 可选索引 `idx_home_hot` | **待评估** |
|
|
329
|
339
|
| C 端首页前端 | **未实现** |
|
|
330
|
340
|
|
|
|
@@ -347,7 +357,8 @@ HomeAppServiceImpl
|
|
347
|
357
|
| 版本 | 说明 |
|
|
348
|
358
|
|------|------|
|
|
349
|
359
|
| **v1.0** | 首版;无新建表;`/api/home` 三读接口;关联 Banner/分类/商品/店铺方案 |
|
|
|
360
|
+| **v1.1** | 三接口 **已实现**;Banner 迁入 `home` 包(`HomeAppMapper` 直读 `biz_home_banner`);单测/接口测落地 |
|
|
350
|
361
|
|
|
351
|
362
|
---
|
|
352
|
363
|
|
|
353
|
|
-*文档版本:v1.0 · MySQL 5.7.39 · RuoYi v3.9.2-springboot2 · 关联《商城首页功能需求.md》v1.0.1、《首页banner设置技术方案.md》v1.0*
|
|
|
364
|
+*文档版本:v1.1 · MySQL 5.7.39 · RuoYi v3.9.2-springboot2 · 关联《商城首页功能需求.md》v1.0.1、《首页banner设置技术方案.md》v1.0.1*
|