docs: 批量更新历史文档中的 backend-single 引用为 server

This commit is contained in:
2026-06-27 17:27:27 +08:00
parent 5586dc5eac
commit 591f70a2f6
39 changed files with 1209 additions and 673 deletions
@@ -4,7 +4,7 @@
**Goal:** Add mini program behavior analytics collection, backend event storage and aggregation, and a web-admin behavior analytics dashboard.
**Architecture:** The mini program queues analytics events locally and flushes them to `POST /analytics/events/batch`. `backend-single` stores raw events in `t_analytics_event` and exposes admin-only aggregation endpoints under `/admin/analytics`. `web-admin` renders overview, trend, funnel, preference, and top-event stats using Element Plus and ECharts.
**Architecture:** The mini program queues analytics events locally and flushes them to `POST /analytics/events/batch`. `server` stores raw events in `t_analytics_event` and exposes admin-only aggregation endpoints under `/admin/analytics`. `web-admin` renders overview, trend, funnel, preference, and top-event stats using Element Plus and ECharts.
**Tech Stack:** Spring Boot 2.7, MyBatis Plus, MySQL JSON, Java 17, uni-app/Vue, Vue 3, Element Plus, ECharts.
@@ -13,25 +13,25 @@
## File Structure
- Create `sql/2026-05-17-analytics-event.sql`: migration for `t_analytics_event`.
- Create `backend-single/src/main/java/com/emotion/entity/AnalyticsEvent.java`: MyBatis Plus entity.
- Create `backend-single/src/main/java/com/emotion/mapper/AnalyticsEventMapper.java`: mapper plus aggregation SQL.
- Create `backend-single/src/main/java/com/emotion/dto/request/analytics/AnalyticsEventBatchRequest.java`: mini program batch request.
- Create `backend-single/src/main/java/com/emotion/dto/request/analytics/AnalyticsEventRequest.java`: one event payload.
- Create `backend-single/src/main/java/com/emotion/dto/request/analytics/AnalyticsQueryRequest.java`: admin query filters.
- Create `backend-single/src/main/java/com/emotion/dto/response/analytics/AnalyticsBatchResponse.java`: accepted/rejected counts.
- Create `backend-single/src/main/java/com/emotion/dto/response/analytics/AnalyticsOverviewResponse.java`: overview cards.
- Create `backend-single/src/main/java/com/emotion/dto/response/analytics/AnalyticsTrendItem.java`: trend item.
- Create `backend-single/src/main/java/com/emotion/dto/response/analytics/AnalyticsFunnelItem.java`: funnel item.
- Create `backend-single/src/main/java/com/emotion/dto/response/analytics/AnalyticsPreferenceItem.java`: preference item.
- Create `backend-single/src/main/java/com/emotion/dto/response/analytics/AnalyticsTopEventItem.java`: top event item.
- Create `backend-single/src/main/java/com/emotion/dto/response/analytics/AnalyticsUserItem.java`: user ranking item.
- Create `backend-single/src/main/java/com/emotion/service/AnalyticsService.java`: write and aggregate contract.
- Create `backend-single/src/main/java/com/emotion/service/impl/AnalyticsServiceImpl.java`: validation, persistence, aggregation.
- Create `backend-single/src/main/java/com/emotion/controller/AnalyticsController.java`: mini program write endpoint.
- Create `backend-single/src/main/java/com/emotion/controller/AdminAnalyticsController.java`: admin read endpoints.
- Modify `backend-single/src/main/java/com/emotion/config/WebMvcConfig.java`: allow anonymous analytics batch endpoint while keeping admin analytics protected.
- Create `backend-single/src/test/java/com/emotion/service/AnalyticsServiceTest.java`: service validation and aggregation tests.
- Create `backend-single/src/test/java/com/emotion/controller/AnalyticsControllerTest.java`: endpoint tests.
- Create `server/src/main/java/com/emotion/entity/AnalyticsEvent.java`: MyBatis Plus entity.
- Create `server/src/main/java/com/emotion/mapper/AnalyticsEventMapper.java`: mapper plus aggregation SQL.
- Create `server/src/main/java/com/emotion/dto/request/analytics/AnalyticsEventBatchRequest.java`: mini program batch request.
- Create `server/src/main/java/com/emotion/dto/request/analytics/AnalyticsEventRequest.java`: one event payload.
- Create `server/src/main/java/com/emotion/dto/request/analytics/AnalyticsQueryRequest.java`: admin query filters.
- Create `server/src/main/java/com/emotion/dto/response/analytics/AnalyticsBatchResponse.java`: accepted/rejected counts.
- Create `server/src/main/java/com/emotion/dto/response/analytics/AnalyticsOverviewResponse.java`: overview cards.
- Create `server/src/main/java/com/emotion/dto/response/analytics/AnalyticsTrendItem.java`: trend item.
- Create `server/src/main/java/com/emotion/dto/response/analytics/AnalyticsFunnelItem.java`: funnel item.
- Create `server/src/main/java/com/emotion/dto/response/analytics/AnalyticsPreferenceItem.java`: preference item.
- Create `server/src/main/java/com/emotion/dto/response/analytics/AnalyticsTopEventItem.java`: top event item.
- Create `server/src/main/java/com/emotion/dto/response/analytics/AnalyticsUserItem.java`: user ranking item.
- Create `server/src/main/java/com/emotion/service/AnalyticsService.java`: write and aggregate contract.
- Create `server/src/main/java/com/emotion/service/impl/AnalyticsServiceImpl.java`: validation, persistence, aggregation.
- Create `server/src/main/java/com/emotion/controller/AnalyticsController.java`: mini program write endpoint.
- Create `server/src/main/java/com/emotion/controller/AdminAnalyticsController.java`: admin read endpoints.
- Modify `server/src/main/java/com/emotion/config/WebMvcConfig.java`: allow anonymous analytics batch endpoint while keeping admin analytics protected.
- Create `server/src/test/java/com/emotion/service/AnalyticsServiceTest.java`: service validation and aggregation tests.
- Create `server/src/test/java/com/emotion/controller/AnalyticsControllerTest.java`: endpoint tests.
- Create `mini-program/src/services/analytics.js`: client SDK.
- Modify `mini-program/src/App.vue`: initialize and flush analytics.
- Modify `mini-program/src/pages/main/index.vue`: track main tab/page activity if this page owns tab switching.
@@ -121,11 +121,11 @@ git commit -m "feat: add analytics event table"
### Task 2: Add Backend DTOs and Entity
**Files:**
- Create: `backend-single/src/main/java/com/emotion/entity/AnalyticsEvent.java`
- Create: `backend-single/src/main/java/com/emotion/dto/request/analytics/AnalyticsEventBatchRequest.java`
- Create: `backend-single/src/main/java/com/emotion/dto/request/analytics/AnalyticsEventRequest.java`
- Create: `backend-single/src/main/java/com/emotion/dto/request/analytics/AnalyticsQueryRequest.java`
- Create: response DTO files under `backend-single/src/main/java/com/emotion/dto/response/analytics/`
- Create: `server/src/main/java/com/emotion/entity/AnalyticsEvent.java`
- Create: `server/src/main/java/com/emotion/dto/request/analytics/AnalyticsEventBatchRequest.java`
- Create: `server/src/main/java/com/emotion/dto/request/analytics/AnalyticsEventRequest.java`
- Create: `server/src/main/java/com/emotion/dto/request/analytics/AnalyticsQueryRequest.java`
- Create: response DTO files under `server/src/main/java/com/emotion/dto/response/analytics/`
- [ ] **Step 1: Add the entity**
@@ -387,7 +387,7 @@ public class AnalyticsUserItem {
Run:
```bash
cd backend-single
cd server
mvn -DskipTests compile
```
@@ -396,7 +396,7 @@ Expected: `BUILD SUCCESS`.
- [ ] **Step 5: Commit**
```bash
git add backend-single/src/main/java/com/emotion/entity/AnalyticsEvent.java backend-single/src/main/java/com/emotion/dto/request/analytics backend-single/src/main/java/com/emotion/dto/response/analytics
git add server/src/main/java/com/emotion/entity/AnalyticsEvent.java server/src/main/java/com/emotion/dto/request/analytics server/src/main/java/com/emotion/dto/response/analytics
git commit -m "feat: add analytics DTOs and entity"
```
@@ -405,10 +405,10 @@ git commit -m "feat: add analytics DTOs and entity"
### Task 3: Add Analytics Mapper and Service
**Files:**
- Create: `backend-single/src/main/java/com/emotion/mapper/AnalyticsEventMapper.java`
- Create: `backend-single/src/main/java/com/emotion/service/AnalyticsService.java`
- Create: `backend-single/src/main/java/com/emotion/service/impl/AnalyticsServiceImpl.java`
- Test: `backend-single/src/test/java/com/emotion/service/AnalyticsServiceTest.java`
- Create: `server/src/main/java/com/emotion/mapper/AnalyticsEventMapper.java`
- Create: `server/src/main/java/com/emotion/service/AnalyticsService.java`
- Create: `server/src/main/java/com/emotion/service/impl/AnalyticsServiceImpl.java`
- Test: `server/src/test/java/com/emotion/service/AnalyticsServiceTest.java`
- [ ] **Step 1: Write service tests**
@@ -462,7 +462,7 @@ public class AnalyticsServiceTest {
Run:
```bash
cd backend-single
cd server
mvn -Dtest=AnalyticsServiceTest test
```
@@ -676,7 +676,7 @@ public class AnalyticsServiceImpl extends ServiceImpl<AnalyticsEventMapper, Anal
Run:
```bash
cd backend-single
cd server
mvn -Dtest=AnalyticsServiceTest test
```
@@ -685,7 +685,7 @@ Expected: `BUILD SUCCESS`.
- [ ] **Step 7: Commit**
```bash
git add backend-single/src/main/java/com/emotion/mapper/AnalyticsEventMapper.java backend-single/src/main/java/com/emotion/service/AnalyticsService.java backend-single/src/main/java/com/emotion/service/impl/AnalyticsServiceImpl.java backend-single/src/test/java/com/emotion/service/AnalyticsServiceTest.java
git add server/src/main/java/com/emotion/mapper/AnalyticsEventMapper.java server/src/main/java/com/emotion/service/AnalyticsService.java server/src/main/java/com/emotion/service/impl/AnalyticsServiceImpl.java server/src/test/java/com/emotion/service/AnalyticsServiceTest.java
git commit -m "feat: add analytics service"
```
@@ -694,10 +694,10 @@ git commit -m "feat: add analytics service"
### Task 4: Add Analytics Controllers and Auth Exclusion
**Files:**
- Create: `backend-single/src/main/java/com/emotion/controller/AnalyticsController.java`
- Create: `backend-single/src/main/java/com/emotion/controller/AdminAnalyticsController.java`
- Modify: `backend-single/src/main/java/com/emotion/config/WebMvcConfig.java`
- Test: `backend-single/src/test/java/com/emotion/controller/AnalyticsControllerTest.java`
- Create: `server/src/main/java/com/emotion/controller/AnalyticsController.java`
- Create: `server/src/main/java/com/emotion/controller/AdminAnalyticsController.java`
- Modify: `server/src/main/java/com/emotion/config/WebMvcConfig.java`
- Test: `server/src/test/java/com/emotion/controller/AnalyticsControllerTest.java`
- [ ] **Step 1: Add write controller**
@@ -794,7 +794,7 @@ Do not exclude `/admin/analytics/**`.
Run:
```bash
cd backend-single
cd server
mvn -DskipTests compile
```
@@ -803,7 +803,7 @@ Expected: `BUILD SUCCESS`.
- [ ] **Step 5: Commit**
```bash
git add backend-single/src/main/java/com/emotion/controller/AnalyticsController.java backend-single/src/main/java/com/emotion/controller/AdminAnalyticsController.java backend-single/src/main/java/com/emotion/config/WebMvcConfig.java
git add server/src/main/java/com/emotion/controller/AnalyticsController.java server/src/main/java/com/emotion/controller/AdminAnalyticsController.java server/src/main/java/com/emotion/config/WebMvcConfig.java
git commit -m "feat: expose analytics APIs"
```
@@ -1323,7 +1323,7 @@ git commit -m "feat: add analytics admin dashboard"
- [ ] **Step 1: Run backend tests**
```bash
cd backend-single
cd server
mvn test
```