Skip to content

Commit 9d4054d

Browse files
committed
v10.1.1
1 parent 376b5e8 commit 9d4054d

File tree

3 files changed

+98
-17
lines changed

3 files changed

+98
-17
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# UJCMS 发版说明
22

3+
## ujcms-10.1.1
4+
5+
* fix: 补全访问统计代码
6+
37
## ujcms-10.1.0
48

59
* feat: 增加自定义表单类型列表

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>com.ujcms</groupId>
88
<artifactId>ujcms</artifactId>
9-
<version>10.1.0</version>
9+
<version>10.1.1</version>
1010
<packaging>${project.packaging}</packaging>
1111

1212
<name>UJCMS</name>

src/main/java/com/ujcms/cms/ext/web/backendapi/VisitController.java

Lines changed: 93 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
11
package com.ujcms.cms.ext.web.backendapi;
22

3-
import com.ujcms.cms.core.domain.Site;
4-
import com.ujcms.cms.core.support.Contexts;
5-
import com.ujcms.cms.core.support.UrlConstants;
6-
import com.ujcms.cms.ext.domain.VisitStat;
7-
import com.ujcms.cms.ext.domain.VisitTrend;
8-
import com.ujcms.cms.ext.service.VisitStatService;
9-
import com.ujcms.cms.ext.service.VisitTrendService;
10-
import org.springframework.format.annotation.DateTimeFormat;
11-
import org.springframework.lang.Nullable;
12-
import org.springframework.security.access.prepost.PreAuthorize;
13-
import org.springframework.web.bind.annotation.GetMapping;
14-
import org.springframework.web.bind.annotation.RequestMapping;
15-
import org.springframework.web.bind.annotation.RequestParam;
16-
import org.springframework.web.bind.annotation.RestController;
3+
import static com.ujcms.cms.core.support.Constants.validPage;
4+
import static com.ujcms.cms.core.support.Constants.validPageSize;
5+
import static com.ujcms.cms.ext.domain.VisitStat.DAY_FORMATTER;
6+
import static com.ujcms.cms.ext.domain.VisitStat.HOUR_FORMATTER;
7+
import static com.ujcms.cms.ext.domain.VisitStat.MINUTE_FORMATTER;
8+
import static com.ujcms.cms.ext.domain.VisitStat.MONTH_FORMATTER;
9+
import static com.ujcms.cms.ext.domain.VisitStat.TYPE_BROWSER;
10+
import static com.ujcms.cms.ext.domain.VisitStat.TYPE_COUNTRY;
11+
import static com.ujcms.cms.ext.domain.VisitStat.TYPE_DEVICE;
12+
import static com.ujcms.cms.ext.domain.VisitStat.TYPE_OS;
13+
import static com.ujcms.cms.ext.domain.VisitStat.TYPE_PROVINCE;
14+
import static com.ujcms.cms.ext.domain.VisitStat.TYPE_SOURCE;
15+
import static com.ujcms.cms.ext.domain.VisitStat.TYPE_SOURCE_TYPE;
16+
import static com.ujcms.cms.ext.domain.VisitStat.TYPE_VISITOR;
17+
import static com.ujcms.commons.db.MyBatis.springPage;
1718

1819
import java.time.LocalDate;
1920
import java.time.OffsetDateTime;
@@ -22,7 +23,24 @@
2223
import java.util.Map;
2324
import java.util.Optional;
2425

25-
import static com.ujcms.cms.ext.domain.VisitStat.*;
26+
import org.springframework.data.domain.Page;
27+
import org.springframework.format.annotation.DateTimeFormat;
28+
import org.springframework.lang.Nullable;
29+
import org.springframework.security.access.prepost.PreAuthorize;
30+
import org.springframework.web.bind.annotation.GetMapping;
31+
import org.springframework.web.bind.annotation.RequestMapping;
32+
import org.springframework.web.bind.annotation.RequestParam;
33+
import org.springframework.web.bind.annotation.RestController;
34+
35+
import com.ujcms.cms.core.domain.Site;
36+
import com.ujcms.cms.core.support.Contexts;
37+
import com.ujcms.cms.core.support.UrlConstants;
38+
import com.ujcms.cms.ext.domain.VisitPage;
39+
import com.ujcms.cms.ext.domain.VisitStat;
40+
import com.ujcms.cms.ext.domain.VisitTrend;
41+
import com.ujcms.cms.ext.service.VisitPageService;
42+
import com.ujcms.cms.ext.service.VisitStatService;
43+
import com.ujcms.cms.ext.service.VisitTrendService;
2644

2745
/**
2846
* 访问统计 Controller
@@ -34,10 +52,12 @@
3452
public class VisitController {
3553
private final VisitTrendService visitTrendService;
3654
private final VisitStatService visitStatService;
55+
private final VisitPageService visitPageService;
3756

38-
public VisitController(VisitTrendService visitTrendService, VisitStatService visitStatService) {
57+
public VisitController(VisitTrendService visitTrendService, VisitStatService visitStatService, VisitPageService visitPageService) {
3958
this.visitTrendService = visitTrendService;
4059
this.visitStatService = visitStatService;
60+
this.visitPageService = visitPageService;
4161
}
4262

4363
@GetMapping("trend-stat")
@@ -116,6 +136,63 @@ public List<VisitStat> sourceTypeStat(
116136
@RequestParam(name = "end", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate end) {
117137
return stat(TYPE_SOURCE_TYPE, begin, end);
118138
}
139+
140+
@GetMapping("visited-page-stat")
141+
@PreAuthorize("hasAnyAuthority('visitedPage:list','*')")
142+
public Page<VisitPage> visitedPageStat(@DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate begin,
143+
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate end,
144+
Integer page, Integer pageSize) {
145+
Site site = Contexts.getCurrentSite();
146+
return springPage(visitPageService.statByDate(site.getId(), VisitPage.TYPE_VISITED_URL,
147+
begin != null ? begin.format(DAY_FORMATTER) : null,
148+
end != null ? end.format(DAY_FORMATTER) : null,
149+
validPage(page), validPageSize(pageSize)));
150+
}
151+
152+
@GetMapping("entry-page-stat")
153+
@PreAuthorize("hasAnyAuthority('entryPage:list','*')")
154+
public Page<VisitPage> entryPageStat(@DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate begin,
155+
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate end,
156+
Integer page, Integer pageSize) {
157+
Site site = Contexts.getCurrentSite();
158+
return springPage(visitPageService.statByDate(site.getId(), VisitPage.TYPE_ENTRY_URL,
159+
begin != null ? begin.format(DAY_FORMATTER) : null,
160+
end != null ? end.format(DAY_FORMATTER) : null,
161+
validPage(page), validPageSize(pageSize)));
162+
}
163+
164+
@GetMapping("source-stat")
165+
@PreAuthorize("hasAnyAuthority('visitSource:list','*')")
166+
public Page<VisitStat> sourceStat(@DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate begin,
167+
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate end,
168+
Integer page, Integer pageSize) {
169+
Site site = Contexts.getCurrentSite();
170+
return springPage(visitStatService.statByDate(site.getId(), TYPE_SOURCE,
171+
begin != null ? begin.format(DAY_FORMATTER) : null,
172+
end != null ? end.format(DAY_FORMATTER) : null,
173+
validPage(page), validPageSize(pageSize)));
174+
}
175+
176+
@GetMapping("device-stat")
177+
@PreAuthorize("hasAnyAuthority('visitDevice:list','*')")
178+
public List<VisitStat> deviceStat(@DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate begin,
179+
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate end) {
180+
return stat(TYPE_DEVICE, begin, end);
181+
}
182+
183+
@GetMapping("os-stat")
184+
@PreAuthorize("hasAnyAuthority('visitOs:list','*')")
185+
public List<VisitStat> osStat(@DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate begin,
186+
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate end) {
187+
return stat(TYPE_OS, begin, end);
188+
}
189+
190+
@GetMapping("browser-stat")
191+
@PreAuthorize("hasAnyAuthority('visitBrowser:list','*')")
192+
public List<VisitStat> browserStat(@DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate begin,
193+
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate end) {
194+
return stat(TYPE_BROWSER, begin, end);
195+
}
119196

120197
private List<VisitStat> stat(short type, @Nullable LocalDate begin, @Nullable LocalDate end) {
121198
Site site = Contexts.getCurrentSite();

0 commit comments

Comments
 (0)