Bläddra i källkod

浏览操作日志查询导出

hanqingsong 1 år sedan
förälder
incheckning
0380e80a11

+ 47 - 0
src/main/java/com/chinaitop/depot/system/controller/UserOperationPageLogController.java

@@ -0,0 +1,47 @@
1
+package com.chinaitop.depot.system.controller;
2
+
3
+import com.chinaitop.depot.system.model.UserOperationPageLog;
4
+import com.chinaitop.depot.system.param.UserOperationPageLogParam;
5
+import com.chinaitop.depot.system.service.UserOperationPageLogService;
6
+import com.github.pagehelper.PageHelper;
7
+import com.github.pagehelper.PageInfo;
8
+import io.swagger.annotations.Api;
9
+import io.swagger.annotations.ApiOperation;
10
+import org.springframework.web.bind.annotation.RequestMapping;
11
+import org.springframework.web.bind.annotation.RequestMethod;
12
+import org.springframework.web.bind.annotation.RestController;
13
+
14
+import javax.annotation.Resource;
15
+import javax.servlet.http.HttpServletRequest;
16
+import javax.servlet.http.HttpServletResponse;
17
+import java.util.List;
18
+
19
+/**
20
+ * @author qingsong.han
21
+ * @description:
22
+ * @create 2024-11-04 10:58
23
+ */
24
+@RestController
25
+@RequestMapping(value = "/userOperationPageLog")
26
+@Api(description = "用户操作浏览日志信息")
27
+public class UserOperationPageLogController {
28
+    @Resource
29
+    private UserOperationPageLogService pageLogService;
30
+
31
+    @RequestMapping(value = "/getPageList", method = RequestMethod.GET)
32
+    @ApiOperation(value = "查询用户登录日志信息", notes = "支持分页")
33
+    public PageInfo<UserOperationPageLog> getPageList(UserOperationPageLogParam param) {
34
+        if (param.getPageNum() != null && param.getPageSize() != null) {
35
+            PageHelper.startPage(param.getPageNum(), param.getPageSize());
36
+        }
37
+        List<UserOperationPageLog> pageList = pageLogService.getPageList(param);
38
+        return new PageInfo<>(pageList);
39
+    }
40
+
41
+    @RequestMapping(value = "/export", method = RequestMethod.GET)
42
+    @ApiOperation(value = "导出用户登录日志信息", notes = "导出所有")
43
+    public void export(String fileName, UserOperationPageLogParam param, HttpServletRequest request, HttpServletResponse response) {
44
+        pageLogService.export(fileName, param, request, response);
45
+    }
46
+
47
+}

+ 23 - 0
src/main/java/com/chinaitop/depot/system/mapper/UserOperationPageLogMapper.java

@@ -0,0 +1,23 @@
1
+package com.chinaitop.depot.system.mapper;
2
+
3
+import com.chinaitop.depot.system.model.UserOperationPageLog;
4
+import com.chinaitop.depot.system.model.UserOperationPageLogExample;
5
+import org.apache.ibatis.annotations.Param;
6
+
7
+import java.util.List;
8
+
9
+public interface UserOperationPageLogMapper {
10
+    int countByExample(UserOperationPageLogExample example);
11
+
12
+    int deleteByExample(UserOperationPageLogExample example);
13
+
14
+    int insert(UserOperationPageLog record);
15
+
16
+    int insertSelective(UserOperationPageLog record);
17
+
18
+    List<UserOperationPageLog> selectByExample(UserOperationPageLogExample example);
19
+
20
+    int updateByExampleSelective(@Param("record") UserOperationPageLog record, @Param("example") UserOperationPageLogExample example);
21
+
22
+    int updateByExample(@Param("record") UserOperationPageLog record, @Param("example") UserOperationPageLogExample example);
23
+}

+ 175 - 0
src/main/java/com/chinaitop/depot/system/mapper/UserOperationPageLogMapper.xml

@@ -0,0 +1,175 @@
1
+<?xml version="1.0" encoding="UTF-8" ?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
3
+<mapper namespace="com.chinaitop.depot.system.mapper.UserOperationPageLogMapper" >
4
+  <resultMap id="BaseResultMap" type="com.chinaitop.depot.system.model.UserOperationPageLog" >
5
+    <result column="id" property="id" jdbcType="VARCHAR" />
6
+    <result column="view_name" property="viewName" jdbcType="VARCHAR" />
7
+    <result column="real_name" property="realName" jdbcType="VARCHAR" />
8
+    <result column="user_ip" property="userIp" jdbcType="VARCHAR" />
9
+    <result column="visit_page_time" property="visitPageTime" jdbcType="TIMESTAMP" />
10
+  </resultMap>
11
+  <sql id="Example_Where_Clause" >
12
+    <where >
13
+      <foreach collection="oredCriteria" item="criteria" separator="or" >
14
+        <if test="criteria.valid" >
15
+          <trim prefix="(" suffix=")" prefixOverrides="and" >
16
+            <foreach collection="criteria.criteria" item="criterion" >
17
+              <choose >
18
+                <when test="criterion.noValue" >
19
+                  and ${criterion.condition}
20
+                </when>
21
+                <when test="criterion.singleValue" >
22
+                  and ${criterion.condition} #{criterion.value}
23
+                </when>
24
+                <when test="criterion.betweenValue" >
25
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
26
+                </when>
27
+                <when test="criterion.listValue" >
28
+                  and ${criterion.condition}
29
+                  <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
30
+                    #{listItem}
31
+                  </foreach>
32
+                </when>
33
+              </choose>
34
+            </foreach>
35
+          </trim>
36
+        </if>
37
+      </foreach>
38
+    </where>
39
+  </sql>
40
+  <sql id="Update_By_Example_Where_Clause" >
41
+    <where >
42
+      <foreach collection="example.oredCriteria" item="criteria" separator="or" >
43
+        <if test="criteria.valid" >
44
+          <trim prefix="(" suffix=")" prefixOverrides="and" >
45
+            <foreach collection="criteria.criteria" item="criterion" >
46
+              <choose >
47
+                <when test="criterion.noValue" >
48
+                  and ${criterion.condition}
49
+                </when>
50
+                <when test="criterion.singleValue" >
51
+                  and ${criterion.condition} #{criterion.value}
52
+                </when>
53
+                <when test="criterion.betweenValue" >
54
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
55
+                </when>
56
+                <when test="criterion.listValue" >
57
+                  and ${criterion.condition}
58
+                  <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
59
+                    #{listItem}
60
+                  </foreach>
61
+                </when>
62
+              </choose>
63
+            </foreach>
64
+          </trim>
65
+        </if>
66
+      </foreach>
67
+    </where>
68
+  </sql>
69
+  <sql id="Base_Column_List" >
70
+    id, view_name, real_name, user_ip, visit_page_time
71
+  </sql>
72
+  <select id="selectByExample" resultMap="BaseResultMap" parameterType="com.chinaitop.depot.system.model.UserOperationPageLogExample" >
73
+    select
74
+    <if test="distinct" >
75
+      distinct
76
+    </if>
77
+    <include refid="Base_Column_List" />
78
+    from user_operation_page_log
79
+    <if test="_parameter != null" >
80
+      <include refid="Example_Where_Clause" />
81
+    </if>
82
+    <if test="orderByClause != null" >
83
+      order by ${orderByClause}
84
+    </if>
85
+  </select>
86
+  <delete id="deleteByExample" parameterType="com.chinaitop.depot.system.model.UserOperationPageLogExample" >
87
+    delete from user_operation_page_log
88
+    <if test="_parameter != null" >
89
+      <include refid="Example_Where_Clause" />
90
+    </if>
91
+  </delete>
92
+  <insert id="insert" parameterType="com.chinaitop.depot.system.model.UserOperationPageLog" >
93
+    insert into user_operation_page_log (id, view_name, real_name, 
94
+      user_ip, visit_page_time)
95
+    values (#{id,jdbcType=VARCHAR}, #{viewName,jdbcType=VARCHAR}, #{realName,jdbcType=VARCHAR}, 
96
+      #{userIp,jdbcType=VARCHAR}, #{visitPageTime,jdbcType=TIMESTAMP})
97
+  </insert>
98
+  <insert id="insertSelective" parameterType="com.chinaitop.depot.system.model.UserOperationPageLog" >
99
+    insert into user_operation_page_log
100
+    <trim prefix="(" suffix=")" suffixOverrides="," >
101
+      <if test="id != null" >
102
+        id,
103
+      </if>
104
+      <if test="viewName != null" >
105
+        view_name,
106
+      </if>
107
+      <if test="realName != null" >
108
+        real_name,
109
+      </if>
110
+      <if test="userIp != null" >
111
+        user_ip,
112
+      </if>
113
+      <if test="visitPageTime != null" >
114
+        visit_page_time,
115
+      </if>
116
+    </trim>
117
+    <trim prefix="values (" suffix=")" suffixOverrides="," >
118
+      <if test="id != null" >
119
+        #{id,jdbcType=VARCHAR},
120
+      </if>
121
+      <if test="viewName != null" >
122
+        #{viewName,jdbcType=VARCHAR},
123
+      </if>
124
+      <if test="realName != null" >
125
+        #{realName,jdbcType=VARCHAR},
126
+      </if>
127
+      <if test="userIp != null" >
128
+        #{userIp,jdbcType=VARCHAR},
129
+      </if>
130
+      <if test="visitPageTime != null" >
131
+        #{visitPageTime,jdbcType=TIMESTAMP},
132
+      </if>
133
+    </trim>
134
+  </insert>
135
+  <select id="countByExample" parameterType="com.chinaitop.depot.system.model.UserOperationPageLogExample" resultType="java.lang.Integer" >
136
+    select count(*) from user_operation_page_log
137
+    <if test="_parameter != null" >
138
+      <include refid="Example_Where_Clause" />
139
+    </if>
140
+  </select>
141
+  <update id="updateByExampleSelective" parameterType="map" >
142
+    update user_operation_page_log
143
+    <set >
144
+      <if test="record.id != null" >
145
+        id = #{record.id,jdbcType=VARCHAR},
146
+      </if>
147
+      <if test="record.viewName != null" >
148
+        view_name = #{record.viewName,jdbcType=VARCHAR},
149
+      </if>
150
+      <if test="record.realName != null" >
151
+        real_name = #{record.realName,jdbcType=VARCHAR},
152
+      </if>
153
+      <if test="record.userIp != null" >
154
+        user_ip = #{record.userIp,jdbcType=VARCHAR},
155
+      </if>
156
+      <if test="record.visitPageTime != null" >
157
+        visit_page_time = #{record.visitPageTime,jdbcType=TIMESTAMP},
158
+      </if>
159
+    </set>
160
+    <if test="_parameter != null" >
161
+      <include refid="Update_By_Example_Where_Clause" />
162
+    </if>
163
+  </update>
164
+  <update id="updateByExample" parameterType="map" >
165
+    update user_operation_page_log
166
+    set id = #{record.id,jdbcType=VARCHAR},
167
+      view_name = #{record.viewName,jdbcType=VARCHAR},
168
+      real_name = #{record.realName,jdbcType=VARCHAR},
169
+      user_ip = #{record.userIp,jdbcType=VARCHAR},
170
+      visit_page_time = #{record.visitPageTime,jdbcType=TIMESTAMP}
171
+    <if test="_parameter != null" >
172
+      <include refid="Update_By_Example_Where_Clause" />
173
+    </if>
174
+  </update>
175
+</mapper>

+ 95 - 0
src/main/java/com/chinaitop/depot/system/model/UserOperationPageLog.java

@@ -0,0 +1,95 @@
1
+package com.chinaitop.depot.system.model;
2
+
3
+import java.util.Date;
4
+
5
+public class UserOperationPageLog {
6
+    private String id;
7
+
8
+    private String viewName;
9
+
10
+    private String realName;
11
+
12
+    private String userIp;
13
+
14
+    private Date visitPageTime;
15
+
16
+    /**
17
+     * null
18
+     * @return id null
19
+     */
20
+    public String getId() {
21
+        return id;
22
+    }
23
+
24
+    /**
25
+     * null
26
+     * @param id null
27
+     */
28
+    public void setId(String id) {
29
+        this.id = id == null ? null : id.trim();
30
+    }
31
+
32
+    /**
33
+     * null
34
+     * @return view_name null
35
+     */
36
+    public String getViewName() {
37
+        return viewName;
38
+    }
39
+
40
+    /**
41
+     * null
42
+     * @param viewName null
43
+     */
44
+    public void setViewName(String viewName) {
45
+        this.viewName = viewName == null ? null : viewName.trim();
46
+    }
47
+
48
+    /**
49
+     * null
50
+     * @return real_name null
51
+     */
52
+    public String getRealName() {
53
+        return realName;
54
+    }
55
+
56
+    /**
57
+     * null
58
+     * @param realName null
59
+     */
60
+    public void setRealName(String realName) {
61
+        this.realName = realName == null ? null : realName.trim();
62
+    }
63
+
64
+    /**
65
+     * null
66
+     * @return user_ip null
67
+     */
68
+    public String getUserIp() {
69
+        return userIp;
70
+    }
71
+
72
+    /**
73
+     * null
74
+     * @param userIp null
75
+     */
76
+    public void setUserIp(String userIp) {
77
+        this.userIp = userIp == null ? null : userIp.trim();
78
+    }
79
+
80
+    /**
81
+     * null
82
+     * @return visit_page_time null
83
+     */
84
+    public Date getVisitPageTime() {
85
+        return visitPageTime;
86
+    }
87
+
88
+    /**
89
+     * null
90
+     * @param visitPageTime null
91
+     */
92
+    public void setVisitPageTime(Date visitPageTime) {
93
+        this.visitPageTime = visitPageTime;
94
+    }
95
+}

+ 559 - 0
src/main/java/com/chinaitop/depot/system/model/UserOperationPageLogExample.java

@@ -0,0 +1,559 @@
1
+package com.chinaitop.depot.system.model;
2
+
3
+import java.util.ArrayList;
4
+import java.util.Date;
5
+import java.util.List;
6
+
7
+public class UserOperationPageLogExample {
8
+    /**
9
+     * user_operation_page_log
10
+     */
11
+    protected String orderByClause;
12
+
13
+    /**
14
+     * user_operation_page_log
15
+     */
16
+    protected boolean distinct;
17
+
18
+    /**
19
+     * user_operation_page_log
20
+     */
21
+    protected List<Criteria> oredCriteria;
22
+
23
+    public UserOperationPageLogExample() {
24
+        oredCriteria = new ArrayList<Criteria>();
25
+    }
26
+
27
+    public void setOrderByClause(String orderByClause) {
28
+        this.orderByClause = orderByClause;
29
+    }
30
+
31
+    public String getOrderByClause() {
32
+        return orderByClause;
33
+    }
34
+
35
+    public void setDistinct(boolean distinct) {
36
+        this.distinct = distinct;
37
+    }
38
+
39
+    public boolean isDistinct() {
40
+        return distinct;
41
+    }
42
+
43
+    public List<Criteria> getOredCriteria() {
44
+        return oredCriteria;
45
+    }
46
+
47
+    public void or(Criteria criteria) {
48
+        oredCriteria.add(criteria);
49
+    }
50
+
51
+    public Criteria or() {
52
+        Criteria criteria = createCriteriaInternal();
53
+        oredCriteria.add(criteria);
54
+        return criteria;
55
+    }
56
+
57
+    public Criteria createCriteria() {
58
+        Criteria criteria = createCriteriaInternal();
59
+        if (oredCriteria.size() == 0) {
60
+            oredCriteria.add(criteria);
61
+        }
62
+        return criteria;
63
+    }
64
+
65
+    protected Criteria createCriteriaInternal() {
66
+        Criteria criteria = new Criteria();
67
+        return criteria;
68
+    }
69
+
70
+    public void clear() {
71
+        oredCriteria.clear();
72
+        orderByClause = null;
73
+        distinct = false;
74
+    }
75
+
76
+    /**
77
+     * user_operation_page_log 2024-11-04
78
+     */
79
+    protected abstract static class GeneratedCriteria {
80
+        protected List<Criterion> criteria;
81
+
82
+        protected GeneratedCriteria() {
83
+            super();
84
+            criteria = new ArrayList<Criterion>();
85
+        }
86
+
87
+        public boolean isValid() {
88
+            return criteria.size() > 0;
89
+        }
90
+
91
+        public List<Criterion> getAllCriteria() {
92
+            return criteria;
93
+        }
94
+
95
+        public List<Criterion> getCriteria() {
96
+            return criteria;
97
+        }
98
+
99
+        protected void addCriterion(String condition) {
100
+            if (condition == null) {
101
+                throw new RuntimeException("Value for condition cannot be null");
102
+            }
103
+            criteria.add(new Criterion(condition));
104
+        }
105
+
106
+        protected void addCriterion(String condition, Object value, String property) {
107
+            if (value == null) {
108
+                throw new RuntimeException("Value for " + property + " cannot be null");
109
+            }
110
+            criteria.add(new Criterion(condition, value));
111
+        }
112
+
113
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
114
+            if (value1 == null || value2 == null) {
115
+                throw new RuntimeException("Between values for " + property + " cannot be null");
116
+            }
117
+            criteria.add(new Criterion(condition, value1, value2));
118
+        }
119
+
120
+        public Criteria andIdIsNull() {
121
+            addCriterion("id is null");
122
+            return (Criteria) this;
123
+        }
124
+
125
+        public Criteria andIdIsNotNull() {
126
+            addCriterion("id is not null");
127
+            return (Criteria) this;
128
+        }
129
+
130
+        public Criteria andIdEqualTo(String value) {
131
+            addCriterion("id =", value, "id");
132
+            return (Criteria) this;
133
+        }
134
+
135
+        public Criteria andIdNotEqualTo(String value) {
136
+            addCriterion("id <>", value, "id");
137
+            return (Criteria) this;
138
+        }
139
+
140
+        public Criteria andIdGreaterThan(String value) {
141
+            addCriterion("id >", value, "id");
142
+            return (Criteria) this;
143
+        }
144
+
145
+        public Criteria andIdGreaterThanOrEqualTo(String value) {
146
+            addCriterion("id >=", value, "id");
147
+            return (Criteria) this;
148
+        }
149
+
150
+        public Criteria andIdLessThan(String value) {
151
+            addCriterion("id <", value, "id");
152
+            return (Criteria) this;
153
+        }
154
+
155
+        public Criteria andIdLessThanOrEqualTo(String value) {
156
+            addCriterion("id <=", value, "id");
157
+            return (Criteria) this;
158
+        }
159
+
160
+        public Criteria andIdLike(String value) {
161
+            addCriterion("id like", value, "id");
162
+            return (Criteria) this;
163
+        }
164
+
165
+        public Criteria andIdNotLike(String value) {
166
+            addCriterion("id not like", value, "id");
167
+            return (Criteria) this;
168
+        }
169
+
170
+        public Criteria andIdIn(List<String> values) {
171
+            addCriterion("id in", values, "id");
172
+            return (Criteria) this;
173
+        }
174
+
175
+        public Criteria andIdNotIn(List<String> values) {
176
+            addCriterion("id not in", values, "id");
177
+            return (Criteria) this;
178
+        }
179
+
180
+        public Criteria andIdBetween(String value1, String value2) {
181
+            addCriterion("id between", value1, value2, "id");
182
+            return (Criteria) this;
183
+        }
184
+
185
+        public Criteria andIdNotBetween(String value1, String value2) {
186
+            addCriterion("id not between", value1, value2, "id");
187
+            return (Criteria) this;
188
+        }
189
+
190
+        public Criteria andViewNameIsNull() {
191
+            addCriterion("view_name is null");
192
+            return (Criteria) this;
193
+        }
194
+
195
+        public Criteria andViewNameIsNotNull() {
196
+            addCriterion("view_name is not null");
197
+            return (Criteria) this;
198
+        }
199
+
200
+        public Criteria andViewNameEqualTo(String value) {
201
+            addCriterion("view_name =", value, "viewName");
202
+            return (Criteria) this;
203
+        }
204
+
205
+        public Criteria andViewNameNotEqualTo(String value) {
206
+            addCriterion("view_name <>", value, "viewName");
207
+            return (Criteria) this;
208
+        }
209
+
210
+        public Criteria andViewNameGreaterThan(String value) {
211
+            addCriterion("view_name >", value, "viewName");
212
+            return (Criteria) this;
213
+        }
214
+
215
+        public Criteria andViewNameGreaterThanOrEqualTo(String value) {
216
+            addCriterion("view_name >=", value, "viewName");
217
+            return (Criteria) this;
218
+        }
219
+
220
+        public Criteria andViewNameLessThan(String value) {
221
+            addCriterion("view_name <", value, "viewName");
222
+            return (Criteria) this;
223
+        }
224
+
225
+        public Criteria andViewNameLessThanOrEqualTo(String value) {
226
+            addCriterion("view_name <=", value, "viewName");
227
+            return (Criteria) this;
228
+        }
229
+
230
+        public Criteria andViewNameLike(String value) {
231
+            addCriterion("view_name like", value, "viewName");
232
+            return (Criteria) this;
233
+        }
234
+
235
+        public Criteria andViewNameNotLike(String value) {
236
+            addCriterion("view_name not like", value, "viewName");
237
+            return (Criteria) this;
238
+        }
239
+
240
+        public Criteria andViewNameIn(List<String> values) {
241
+            addCriterion("view_name in", values, "viewName");
242
+            return (Criteria) this;
243
+        }
244
+
245
+        public Criteria andViewNameNotIn(List<String> values) {
246
+            addCriterion("view_name not in", values, "viewName");
247
+            return (Criteria) this;
248
+        }
249
+
250
+        public Criteria andViewNameBetween(String value1, String value2) {
251
+            addCriterion("view_name between", value1, value2, "viewName");
252
+            return (Criteria) this;
253
+        }
254
+
255
+        public Criteria andViewNameNotBetween(String value1, String value2) {
256
+            addCriterion("view_name not between", value1, value2, "viewName");
257
+            return (Criteria) this;
258
+        }
259
+
260
+        public Criteria andRealNameIsNull() {
261
+            addCriterion("real_name is null");
262
+            return (Criteria) this;
263
+        }
264
+
265
+        public Criteria andRealNameIsNotNull() {
266
+            addCriterion("real_name is not null");
267
+            return (Criteria) this;
268
+        }
269
+
270
+        public Criteria andRealNameEqualTo(String value) {
271
+            addCriterion("real_name =", value, "realName");
272
+            return (Criteria) this;
273
+        }
274
+
275
+        public Criteria andRealNameNotEqualTo(String value) {
276
+            addCriterion("real_name <>", value, "realName");
277
+            return (Criteria) this;
278
+        }
279
+
280
+        public Criteria andRealNameGreaterThan(String value) {
281
+            addCriterion("real_name >", value, "realName");
282
+            return (Criteria) this;
283
+        }
284
+
285
+        public Criteria andRealNameGreaterThanOrEqualTo(String value) {
286
+            addCriterion("real_name >=", value, "realName");
287
+            return (Criteria) this;
288
+        }
289
+
290
+        public Criteria andRealNameLessThan(String value) {
291
+            addCriterion("real_name <", value, "realName");
292
+            return (Criteria) this;
293
+        }
294
+
295
+        public Criteria andRealNameLessThanOrEqualTo(String value) {
296
+            addCriterion("real_name <=", value, "realName");
297
+            return (Criteria) this;
298
+        }
299
+
300
+        public Criteria andRealNameLike(String value) {
301
+            addCriterion("real_name like", value, "realName");
302
+            return (Criteria) this;
303
+        }
304
+
305
+        public Criteria andRealNameNotLike(String value) {
306
+            addCriterion("real_name not like", value, "realName");
307
+            return (Criteria) this;
308
+        }
309
+
310
+        public Criteria andRealNameIn(List<String> values) {
311
+            addCriterion("real_name in", values, "realName");
312
+            return (Criteria) this;
313
+        }
314
+
315
+        public Criteria andRealNameNotIn(List<String> values) {
316
+            addCriterion("real_name not in", values, "realName");
317
+            return (Criteria) this;
318
+        }
319
+
320
+        public Criteria andRealNameBetween(String value1, String value2) {
321
+            addCriterion("real_name between", value1, value2, "realName");
322
+            return (Criteria) this;
323
+        }
324
+
325
+        public Criteria andRealNameNotBetween(String value1, String value2) {
326
+            addCriterion("real_name not between", value1, value2, "realName");
327
+            return (Criteria) this;
328
+        }
329
+
330
+        public Criteria andUserIpIsNull() {
331
+            addCriterion("user_ip is null");
332
+            return (Criteria) this;
333
+        }
334
+
335
+        public Criteria andUserIpIsNotNull() {
336
+            addCriterion("user_ip is not null");
337
+            return (Criteria) this;
338
+        }
339
+
340
+        public Criteria andUserIpEqualTo(String value) {
341
+            addCriterion("user_ip =", value, "userIp");
342
+            return (Criteria) this;
343
+        }
344
+
345
+        public Criteria andUserIpNotEqualTo(String value) {
346
+            addCriterion("user_ip <>", value, "userIp");
347
+            return (Criteria) this;
348
+        }
349
+
350
+        public Criteria andUserIpGreaterThan(String value) {
351
+            addCriterion("user_ip >", value, "userIp");
352
+            return (Criteria) this;
353
+        }
354
+
355
+        public Criteria andUserIpGreaterThanOrEqualTo(String value) {
356
+            addCriterion("user_ip >=", value, "userIp");
357
+            return (Criteria) this;
358
+        }
359
+
360
+        public Criteria andUserIpLessThan(String value) {
361
+            addCriterion("user_ip <", value, "userIp");
362
+            return (Criteria) this;
363
+        }
364
+
365
+        public Criteria andUserIpLessThanOrEqualTo(String value) {
366
+            addCriterion("user_ip <=", value, "userIp");
367
+            return (Criteria) this;
368
+        }
369
+
370
+        public Criteria andUserIpLike(String value) {
371
+            addCriterion("user_ip like", value, "userIp");
372
+            return (Criteria) this;
373
+        }
374
+
375
+        public Criteria andUserIpNotLike(String value) {
376
+            addCriterion("user_ip not like", value, "userIp");
377
+            return (Criteria) this;
378
+        }
379
+
380
+        public Criteria andUserIpIn(List<String> values) {
381
+            addCriterion("user_ip in", values, "userIp");
382
+            return (Criteria) this;
383
+        }
384
+
385
+        public Criteria andUserIpNotIn(List<String> values) {
386
+            addCriterion("user_ip not in", values, "userIp");
387
+            return (Criteria) this;
388
+        }
389
+
390
+        public Criteria andUserIpBetween(String value1, String value2) {
391
+            addCriterion("user_ip between", value1, value2, "userIp");
392
+            return (Criteria) this;
393
+        }
394
+
395
+        public Criteria andUserIpNotBetween(String value1, String value2) {
396
+            addCriterion("user_ip not between", value1, value2, "userIp");
397
+            return (Criteria) this;
398
+        }
399
+
400
+        public Criteria andVisitPageTimeIsNull() {
401
+            addCriterion("visit_page_time is null");
402
+            return (Criteria) this;
403
+        }
404
+
405
+        public Criteria andVisitPageTimeIsNotNull() {
406
+            addCriterion("visit_page_time is not null");
407
+            return (Criteria) this;
408
+        }
409
+
410
+        public Criteria andVisitPageTimeEqualTo(Date value) {
411
+            addCriterion("visit_page_time =", value, "visitPageTime");
412
+            return (Criteria) this;
413
+        }
414
+
415
+        public Criteria andVisitPageTimeNotEqualTo(Date value) {
416
+            addCriterion("visit_page_time <>", value, "visitPageTime");
417
+            return (Criteria) this;
418
+        }
419
+
420
+        public Criteria andVisitPageTimeGreaterThan(Date value) {
421
+            addCriterion("visit_page_time >", value, "visitPageTime");
422
+            return (Criteria) this;
423
+        }
424
+
425
+        public Criteria andVisitPageTimeGreaterThanOrEqualTo(Date value) {
426
+            addCriterion("visit_page_time >=", value, "visitPageTime");
427
+            return (Criteria) this;
428
+        }
429
+
430
+        public Criteria andVisitPageTimeLessThan(Date value) {
431
+            addCriterion("visit_page_time <", value, "visitPageTime");
432
+            return (Criteria) this;
433
+        }
434
+
435
+        public Criteria andVisitPageTimeLessThanOrEqualTo(Date value) {
436
+            addCriterion("visit_page_time <=", value, "visitPageTime");
437
+            return (Criteria) this;
438
+        }
439
+
440
+        public Criteria andVisitPageTimeIn(List<Date> values) {
441
+            addCriterion("visit_page_time in", values, "visitPageTime");
442
+            return (Criteria) this;
443
+        }
444
+
445
+        public Criteria andVisitPageTimeNotIn(List<Date> values) {
446
+            addCriterion("visit_page_time not in", values, "visitPageTime");
447
+            return (Criteria) this;
448
+        }
449
+
450
+        public Criteria andVisitPageTimeBetween(Date value1, Date value2) {
451
+            addCriterion("visit_page_time between", value1, value2, "visitPageTime");
452
+            return (Criteria) this;
453
+        }
454
+
455
+        public Criteria andVisitPageTimeNotBetween(Date value1, Date value2) {
456
+            addCriterion("visit_page_time not between", value1, value2, "visitPageTime");
457
+            return (Criteria) this;
458
+        }
459
+    }
460
+
461
+    /**
462
+     * user_operation_page_log
463
+     */
464
+    public static class Criteria extends GeneratedCriteria {
465
+
466
+        protected Criteria() {
467
+            super();
468
+        }
469
+    }
470
+
471
+    /**
472
+     * user_operation_page_log 2024-11-04
473
+     */
474
+    public static class Criterion {
475
+        private String condition;
476
+
477
+        private Object value;
478
+
479
+        private Object secondValue;
480
+
481
+        private boolean noValue;
482
+
483
+        private boolean singleValue;
484
+
485
+        private boolean betweenValue;
486
+
487
+        private boolean listValue;
488
+
489
+        private String typeHandler;
490
+
491
+        public String getCondition() {
492
+            return condition;
493
+        }
494
+
495
+        public Object getValue() {
496
+            return value;
497
+        }
498
+
499
+        public Object getSecondValue() {
500
+            return secondValue;
501
+        }
502
+
503
+        public boolean isNoValue() {
504
+            return noValue;
505
+        }
506
+
507
+        public boolean isSingleValue() {
508
+            return singleValue;
509
+        }
510
+
511
+        public boolean isBetweenValue() {
512
+            return betweenValue;
513
+        }
514
+
515
+        public boolean isListValue() {
516
+            return listValue;
517
+        }
518
+
519
+        public String getTypeHandler() {
520
+            return typeHandler;
521
+        }
522
+
523
+        protected Criterion(String condition) {
524
+            super();
525
+            this.condition = condition;
526
+            this.typeHandler = null;
527
+            this.noValue = true;
528
+        }
529
+
530
+        protected Criterion(String condition, Object value, String typeHandler) {
531
+            super();
532
+            this.condition = condition;
533
+            this.value = value;
534
+            this.typeHandler = typeHandler;
535
+            if (value instanceof List<?>) {
536
+                this.listValue = true;
537
+            } else {
538
+                this.singleValue = true;
539
+            }
540
+        }
541
+
542
+        protected Criterion(String condition, Object value) {
543
+            this(condition, value, null);
544
+        }
545
+
546
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
547
+            super();
548
+            this.condition = condition;
549
+            this.value = value;
550
+            this.secondValue = secondValue;
551
+            this.typeHandler = typeHandler;
552
+            this.betweenValue = true;
553
+        }
554
+
555
+        protected Criterion(String condition, Object value, Object secondValue) {
556
+            this(condition, value, secondValue, null);
557
+        }
558
+    }
559
+}

+ 36 - 0
src/main/java/com/chinaitop/depot/system/model/UserOperationPageLogVO.java

@@ -0,0 +1,36 @@
1
+package com.chinaitop.depot.system.model;
2
+
3
+import com.alibaba.excel.annotation.ExcelProperty;
4
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
5
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
6
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
7
+import lombok.Data;
8
+
9
+import java.util.Date;
10
+
11
+/**
12
+ * @author qingsong.han
13
+ * @description:
14
+ * @create 2024-11-04 11:15
15
+ */
16
+@Data
17
+@ContentRowHeight(20) // 文本行高度
18
+@HeadRowHeight(20) // 标题高度
19
+@ColumnWidth(20) // 默认列宽度
20
+public class UserOperationPageLogVO {
21
+    // 页面名称
22
+    @ExcelProperty(value = "页面名称")
23
+    private String viewName;
24
+
25
+    // 访问用户名称
26
+    @ExcelProperty(value = "访问用户名称")
27
+    private String realName;
28
+
29
+    // 用户设备IP
30
+    @ExcelProperty(value = "用户设备IP")
31
+    private String userIp;
32
+
33
+    // 访问页面时间
34
+    @ExcelProperty(value = "访问页面时间")
35
+    private Date visitPageTime;
36
+}

+ 23 - 0
src/main/java/com/chinaitop/depot/system/param/UserOperationPageLogParam.java

@@ -0,0 +1,23 @@
1
+package com.chinaitop.depot.system.param;
2
+
3
+import com.chinaitop.depot.common.PageParam;
4
+import lombok.Getter;
5
+import lombok.Setter;
6
+
7
+import java.io.Serializable;
8
+
9
+/**
10
+ * @author qingsong.han
11
+ * @description:
12
+ * @create 2024-11-04 11:01
13
+ */
14
+@Getter
15
+@Setter
16
+public class UserOperationPageLogParam extends PageParam implements Serializable {
17
+    // 页面名称
18
+    private String viewName;
19
+    // 访问用户名称
20
+    private String realName;
21
+    // 访问页面时间
22
+    private String visitPageTime;
23
+}

+ 19 - 0
src/main/java/com/chinaitop/depot/system/service/UserOperationPageLogService.java

@@ -0,0 +1,19 @@
1
+package com.chinaitop.depot.system.service;
2
+
3
+import com.chinaitop.depot.system.model.UserOperationPageLog;
4
+import com.chinaitop.depot.system.param.UserOperationPageLogParam;
5
+
6
+import javax.servlet.http.HttpServletRequest;
7
+import javax.servlet.http.HttpServletResponse;
8
+import java.util.List;
9
+
10
+/**
11
+ * @author qingsong.han
12
+ * @description:
13
+ * @create 2024-11-04 10:56
14
+ */
15
+public interface UserOperationPageLogService {
16
+    List<UserOperationPageLog> getPageList(UserOperationPageLogParam param);
17
+
18
+    void export(String fileName, UserOperationPageLogParam param, HttpServletRequest request, HttpServletResponse response);
19
+}

+ 89 - 0
src/main/java/com/chinaitop/depot/system/service/impl/UserOperationPageLogServiceImpl.java

@@ -0,0 +1,89 @@
1
+package com.chinaitop.depot.system.service.impl;
2
+
3
+import com.alibaba.excel.EasyExcel;
4
+import com.alibaba.excel.support.ExcelTypeEnum;
5
+import com.chinaitop.depot.system.mapper.UserOperationPageLogMapper;
6
+import com.chinaitop.depot.system.model.UserOperationPageLog;
7
+import com.chinaitop.depot.system.model.UserOperationPageLogExample;
8
+import com.chinaitop.depot.system.model.UserOperationPageLogVO;
9
+import com.chinaitop.depot.system.param.UserOperationPageLogParam;
10
+import com.chinaitop.depot.system.service.UserOperationPageLogService;
11
+import com.chinaitop.depot.utils.DateUtils;
12
+import lombok.extern.slf4j.Slf4j;
13
+import org.springframework.beans.BeanUtils;
14
+import org.springframework.stereotype.Service;
15
+import org.springframework.util.StringUtils;
16
+
17
+import javax.annotation.Resource;
18
+import javax.servlet.http.HttpServletRequest;
19
+import javax.servlet.http.HttpServletResponse;
20
+import java.io.IOException;
21
+import java.net.URLEncoder;
22
+import java.time.LocalDateTime;
23
+import java.util.ArrayList;
24
+import java.util.List;
25
+
26
+/**
27
+ * @author qingsong.han
28
+ * @description:
29
+ * @create 2024-11-04 10:57
30
+ */
31
+@Slf4j
32
+@Service
33
+public class UserOperationPageLogServiceImpl implements UserOperationPageLogService {
34
+    @Resource
35
+    private UserOperationPageLogMapper pageLogMapper;
36
+
37
+    @Override
38
+    public List<UserOperationPageLog> getPageList(UserOperationPageLogParam param) {
39
+        UserOperationPageLogExample example = new UserOperationPageLogExample();
40
+        UserOperationPageLogExample.Criteria criteria = example.createCriteria();
41
+        if (StringUtils.hasText(param.getViewName())) {
42
+            criteria.andViewNameLike(param.getViewName());
43
+        }
44
+        if (StringUtils.hasText(param.getRealName())) {
45
+            criteria.andRealNameLike(param.getRealName());
46
+        }
47
+        if (StringUtils.hasText(param.getVisitPageTime())) {
48
+            criteria.andVisitPageTimeBetween(DateUtils.stringToData(param.getVisitPageTime() + DateUtils.startTime), DateUtils.stringToData(param.getVisitPageTime() + DateUtils.endTime));
49
+        }
50
+        return pageLogMapper.selectByExample(example);
51
+    }
52
+
53
+    @Override
54
+    public void export(String fileName, UserOperationPageLogParam param, HttpServletRequest request, HttpServletResponse response) {
55
+        try {
56
+            if (!StringUtils.hasText(fileName)) {
57
+                fileName = LocalDateTime.now().toString();
58
+            }
59
+
60
+            // 设置响应信息,让浏览器下载文件
61
+            fileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");
62
+            response.setContentType("application/vnd.ms-excel");
63
+            response.setCharacterEncoding("utf-8");
64
+
65
+            response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
66
+
67
+            EasyExcel.write(response.getOutputStream()) // 或, GrainTempExcel.class
68
+                    .head(UserOperationPageLogVO.class) // write 中, GrainTempExcel.class 二选一
69
+                    .excelType(ExcelTypeEnum.XLSX)
70
+                    .sheet("用户访问日志")
71
+                    .doWrite(this.getData(param));
72
+
73
+        } catch (IOException e) {
74
+            log.error("摄像头管理导出异常:{}", e);
75
+            throw new RuntimeException(e);
76
+        }
77
+    }
78
+
79
+    private List<UserOperationPageLogVO> getData(UserOperationPageLogParam param) {
80
+        List<UserOperationPageLog> pageList = this.getPageList(param);
81
+        List<UserOperationPageLogVO> list = new ArrayList<>();
82
+        pageList.forEach(userLoginLog -> {
83
+            UserOperationPageLogVO logVO = new UserOperationPageLogVO();
84
+            BeanUtils.copyProperties(userLoginLog, logVO);
85
+            list.add(logVO);
86
+        });
87
+        return list;
88
+    }
89
+}