持久层
# 数据库表创建
CREATE TABLE `t_link_access_stats`
(
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`full_short_url` varchar(128) DEFAULT NULL COMMENT '完整短链接',
`gid` varchar(32) DEFAULT 'default' COMMENT '分组标识',
`date` date DEFAULT NULL COMMENT '日期',
`pv` int(11) DEFAULT NULL COMMENT '访问量',
`uv` int(11) DEFAULT NULL COMMENT '独立访客数',
`uip` int(11) DEFAULT NULL COMMENT '独立IP数',
`hour` int(3) DEFAULT NULL COMMENT '小时',
`weekday` int(3) DEFAULT NULL COMMENT '星期',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`del_flag` tinyint(1) DEFAULT NULL COMMENT '删除标识 0:未删除 1:已删除',
PRIMARY KEY (`id`),
UNIQUE KEY `idx_unique_access_stats` (`full_short_url`,`gid`,`weekday`,`hour`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CREATE TABLE `t_link_locale_stats`
(
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`full_short_url` varchar(128) DEFAULT NULL COMMENT '完整短链接',
`gid` varchar(32) DEFAULT 'default' COMMENT '分组标识',
`date` date DEFAULT NULL COMMENT '日期',
`cnt` int(11) DEFAULT NULL COMMENT '访问量',
`province` varchar(64) DEFAULT NULL COMMENT '省份名称',
`city` varchar(64) DEFAULT NULL COMMENT '市名称',
`adcode` varchar(64) DEFAULT NULL COMMENT '城市编码',
`country` varchar(64) DEFAULT NULL COMMENT '国家标识',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`del_flag` tinyint(1) DEFAULT NULL COMMENT '删除标识 0:未删除 1:已删除',
PRIMARY KEY (`id`),
UNIQUE KEY `idx_unique_locale_stats` (`full_short_url`,`gid`,`date`,`adcode`,`province`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CREATE TABLE `t_link_os_stats`
(
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`full_short_url` varchar(128) DEFAULT NULL COMMENT '完整短链接',
`gid` varchar(32) DEFAULT 'default' COMMENT '分组标识',
`date` date DEFAULT NULL COMMENT '日期',
`cnt` int(11) DEFAULT NULL COMMENT '访问量',
`os` varchar(64) DEFAULT NULL COMMENT '操作系统',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`del_flag` tinyint(1) DEFAULT NULL COMMENT '删除标识 0:未删除 1:已删除',
PRIMARY KEY (`id`),
UNIQUE KEY `idx_unique_os_stats` (`full_short_url`,`gid`,`date`,`os`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE TABLE `t_link_browser_stats`
(
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`full_short_url` varchar(128) DEFAULT NULL COMMENT '完整短链接',
`gid` varchar(32) DEFAULT 'default' COMMENT '分组标识',
`date` date DEFAULT NULL COMMENT '日期',
`cnt` int(11) DEFAULT NULL COMMENT '访问量',
`browser` varchar(64) DEFAULT NULL COMMENT '浏览器',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`del_flag` tinyint(1) DEFAULT NULL COMMENT '删除标识 0:未删除 1:已删除',
PRIMARY KEY (`id`),
UNIQUE KEY `idx_unique_browser_stats` (`full_short_url`,`gid`,`date`,`browser`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE TABLE `t_link_access_logs`
(
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`full_short_url` varchar(128) DEFAULT NULL COMMENT '完整短链接',
`gid` varchar(32) DEFAULT 'default' COMMENT '分组标识',
`user` varchar(64) DEFAULT NULL COMMENT '用户信息',
`ip` varchar(64) DEFAULT NULL COMMENT 'IP',
`browser` varchar(64) DEFAULT NULL COMMENT '浏览器',
`os` varchar(64) DEFAULT NULL COMMENT '操作系统',
`network` varchar(64) DEFAULT NULL COMMENT '访问网络',
`device` varchar(64) DEFAULT NULL COMMENT '访问设备',
`locale` varchar(256) DEFAULT NULL COMMENT '地区',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`del_flag` tinyint(1) DEFAULT NULL COMMENT '删除标识 0:未删除 1:已删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CREATE TABLE `t_link_device_stats`
(
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`full_short_url` varchar(128) DEFAULT NULL COMMENT '完整短链接',
`gid` varchar(32) DEFAULT 'default' COMMENT '分组标识',
`date` date DEFAULT NULL COMMENT '日期',
`cnt` int(11) DEFAULT NULL COMMENT '访问量',
`device` varchar(64) DEFAULT NULL COMMENT '访问设备',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`del_flag` tinyint(1) DEFAULT NULL COMMENT '删除标识 0:未删除 1:已删除',
PRIMARY KEY (`id`),
UNIQUE KEY `idx_unique_browser_stats` (`full_short_url`,`gid`,`date`,`device`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE TABLE `t_link_network_stats`
(
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`full_short_url` varchar(128) DEFAULT NULL COMMENT '完整短链接',
`gid` varchar(32) DEFAULT 'default' COMMENT '分组标识',
`date` date DEFAULT NULL COMMENT '日期',
`cnt` int(11) DEFAULT NULL COMMENT '访问量',
`network` varchar(64) DEFAULT NULL COMMENT '访问网络',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`del_flag` tinyint(1) DEFAULT NULL COMMENT '删除标识 0:未删除 1:已删除',
PRIMARY KEY (`id`),
UNIQUE KEY `idx_unique_browser_stats` (`full_short_url`,`gid`,`date`,`network`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
# 实体类
# LinkAccessStatsDO
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("t_link_access_stats")
public class LinkAccessStatsDO extends BaseDO {
/**
* id
*/
private Long id;
/**
* 完整短链接
*/
private String fullShortUrl;
/**
* 分组标识
*/
private String gid;
/**
* 日期
*/
private Date date;
/**
* 访问量
*/
private Integer pv;
/**
* 独立访客数
*/
private Integer uv;
/**
* 独立ip数
*/
private Integer uip;
/**
* 小时
*/
private Integer hour;
/**
* 星期
*/
private Integer weekday;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# LinkLocaleStatsDO
@Data
@TableName("t_link_locale_stats")
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class LinkLocaleStatsDO extends BaseDO {
/**
* id
*/
private Long id;
/**
* 完整短链接
*/
private String fullShortUrl;
/**
* 分组标识
*/
private String gid;
/**
* 日期
*/
private Date date;
/**
* 访问量
*/
private Integer cnt;
/**
* 省份名称
*/
private String province;
/**
* 市名称
*/
private String city;
/**
* 城市编码
*/
private String adcode;
/**
* 国家标识
*/
private String country;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# LinkOsStatsDO
@Data
@TableName("t_link_os_stats")
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class LinkOsStatsDO extends BaseDO {
/**
* id
*/
private Long id;
/**
* 完整短链接
*/
private String fullShortUrl;
/**
* 分组标识
*/
private String gid;
/**
* 日期
*/
private Date date;
/**
* 访问量
*/
private Integer cnt;
/**
* 操作系统
*/
private String os;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# LinkBrowserStatsDO
@Data
@TableName("t_link_browser_stats")
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class LinkBrowserStatsDO extends BaseDO {
/**
* id
*/
private Long id;
/**
* 完整短链接
*/
private String fullShortUrl;
/**
* 分组标识
*/
private String gid;
/**
* 日期
*/
private Date date;
/**
* 访问量
*/
private Integer cnt;
/**
* 浏览器
*/
private String browser;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# LinkAccessLogsDO
@Data
@TableName("t_link_access_logs")
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class LinkAccessLogsDO extends BaseDO {
/**
* id
*/
private Long id;
/**
* 完整短链接
*/
private String fullShortUrl;
/**
* 分组标识
*/
private String gid;
/**
* 用户信息
*/
private String user;
/**
* 浏览器
*/
private String browser;
/**
* 操作系统
*/
private String os;
/**
* ip
*/
private String ip;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# LinkDeviceStatsDO
@Data
@TableName("t_link_device_stats")
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class LinkDeviceStatsDO extends BaseDO {
/**
* id
*/
private Long id;
/**
* 完整短链接
*/
private String fullShortUrl;
/**
* 分组标识
*/
private String gid;
/**
* 日期
*/
private Date date;
/**
* 访问量
*/
private Integer cnt;
/**
* 网络设备
*/
private String device;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# LinkNetworkStatsDO
@Data
@TableName("t_link_network_stats")
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class LinkNetworkStatsDO extends BaseDO {
/**
* id
*/
private Long id;
/**
* 完整短链接
*/
private String fullShortUrl;
/**
* 分组标识
*/
private String gid;
/**
* 日期
*/
private Date date;
/**
* 访问量
*/
private Integer cnt;
/**
* 访问网络
*/
private String network;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 单个短链访问监控详情
# ShortLinkStatsReqDTO
/**
* 短链接监控请求参数
*/
@Data
public class ShortLinkStatsReqDTO {
/**
* 完整短链接
*/
private String fullShortUrl;
/**
* 分组标识
*/
private String gid;
/**
* 开始日期
*/
private String startDate;
/**
* 结束日期
*/
private String endDate;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# ShortLinkStatsAccessDailyRespDTO
date为什么换为String?
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ShortLinkStatsAccessDailyRespDTO {
/**
* 日期
*/
private String date;
/**
* 访问量
*/
private Integer pv;
/**
* 独立访客数
*/
private Integer uv;
/**
* 独立IP数
*/
private Integer uip;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# ShortLinkStatsLocaleCNRespDTO
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ShortLinkStatsLocaleCNRespDTO {
/**
* 统计
*/
private Integer cnt;
/**
* 地区
*/
private String locale;
/**
* 占比
*/
private Double ratio;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# ShortLinkStatsOsRespDTO
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ShortLinkStatsOsRespDTO {
/**
* 统计
*/
private Integer cnt;
/**
* 操作系统
*/
private String os;
/**
* 占比
*/
private Double ratio;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# ShortLinkStatsBrowserRespDTO
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ShortLinkStatsBrowserRespDTO {
/**
* 统计
*/
private Integer cnt;
/**
* 浏览器
*/
private String browser;
/**
* 占比
*/
private Double ratio;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# ShortLinkStatsTopIpRespDTO
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ShortLinkStatsTopIpRespDTO {
/**
* 统计
*/
private Integer cnt;
/**
* IP
*/
private String ip;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# ShortLinkStatsDeviceRespDTO
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ShortLinkStatsDeviceRespDTO {
/**
* 统计
*/
private Integer cnt;
/**
* 设备类型
*/
private String device;
/**
* 占比
*/
private Double ratio;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# ShortLinkStatsNetworkRespDTO
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ShortLinkStatsNetworkRespDTO {
/**
* 统计
*/
private Integer cnt;
/**
* 访问网络
*/
private String network;
/**
* 占比
*/
private Double ratio;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# ShortLinkStatsUvRespDTO
/**
* 短链接访客监控响应参数
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ShortLinkStatsUvRespDTO {
/**
* 统计
*/
private Integer cnt;
/**
* 访客类型
*/
private String uvType;
/**
* 占比
*/
private Double ratio;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# ShortLinkStatsRespDTO
/**
* 短链接监控响应参数
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ShortLinkStatsRespDTO {
/**
* 访问量
*/
private Integer pv;
/**
* 独立访客数
*/
private Integer uv;
/**
* 独立IP数
*/
private Integer uip;
/**
* 基础访问详情
*/
private List<ShortLinkStatsAccessDailyRespDTO> daily;
/**
* 地区访问详情(仅国内)
*/
private List<ShortLinkStatsLocaleCNRespDTO> localeCnStats;
/**
* 小时访问详情
*/
private List<Integer> hourStats;
/**
* 高频访问IP详情
*/
private List<ShortLinkStatsTopIpRespDTO> topIpStats;
/**
* 一周访问详情
*/
private List<Integer> weekdayStats;
/**
* 浏览器访问详情
*/
private List<ShortLinkStatsBrowserRespDTO> browserStats;
/**
* 操作系统访问详情
*/
private List<ShortLinkStatsOsRespDTO> osStats;
/**
* 访客访问类型详情
*/
private List<ShortLinkStatsUvRespDTO> uvTypeStats;
/**
* 访问设备类型详情
*/
private List<ShortLinkStatsDeviceRespDTO> deviceStats;
/**
* 访问网络类型详情
*/
private List<ShortLinkStatsNetworkRespDTO> networkStats;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# 访问记录
# ShortLinkStatsAccessRecordReqDTO
@Data
public class ShortLinkStatsAccessRecordReqDTO extends Page<LinkAccessLogsDO> {
/**
* 完整短链接
*/
private String fullShortUrl;
/**
* 分组标识
*/
private String gid;
/**
* 开始日期
*/
private String startDate;
/**
* 结束日期
*/
private String endDate;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# ShortLinkStatsAccessRecordRespDTO
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ShortLinkStatsAccessRecordRespDTO {
/**
* 访客类型
*/
private String uvType;
/**
* 浏览器
*/
private String browser;
/**
* 操作系统
*/
private String os;
/**
* ip
*/
private String ip;
/**
* 访问网络
*/
private String network;
/**
* 访问设备
*/
private String device;
/**
* 地区
*/
private String locale;
/**
* 用户信息
*/
private String user;
/**
* 访问时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51