From 2fe81eab1b653ffd19da3c1876e201d9a10ed6f7 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Sat, 08 Jan 2022 16:33:09 +0800
Subject: [PATCH] 1.登录记录新增修改,页面刷新token 不能算入 2.登录统计接口新增,统计明细查询接口新增
---
src/main/java/org/springblade/modules/auth/endpoint/BladeTokenEndPoint.java | 8 +
src/main/java/org/springblade/modules/loginrecord/service/LoginRecordService.java | 14 +++
src/main/java/org/springblade/modules/loginrecord/mapper/LoginRecordMapper.xml | 122 ++++++++++++++++++++++++++++++
src/main/java/org/springblade/modules/loginrecord/controller/LoginRecordController.java | 21 +++++
src/main/java/org/springblade/modules/loginrecord/mapper/LoginRecordMapper.java | 10 ++
src/main/java/org/springblade/modules/loginrecord/vo/LoginRecordVo.java | 40 ++++++++++
src/main/java/org/springblade/modules/loginrecord/service/impl/LoginRecordServiceImpl.java | 21 +++++
7 files changed, 233 insertions(+), 3 deletions(-)
diff --git a/src/main/java/org/springblade/modules/auth/endpoint/BladeTokenEndPoint.java b/src/main/java/org/springblade/modules/auth/endpoint/BladeTokenEndPoint.java
index c7c8957..1dba304 100644
--- a/src/main/java/org/springblade/modules/auth/endpoint/BladeTokenEndPoint.java
+++ b/src/main/java/org/springblade/modules/auth/endpoint/BladeTokenEndPoint.java
@@ -143,8 +143,12 @@
}
}
}else {
- //新增登录记录
- this.saveLoginRecord(userInfo);
+ System.out.println("grantType = " + grantType);
+ //刷新 token 不新增登录记录
+ if (!grantType.equals("refresh_token")){
+ //新增登录记录
+ this.saveLoginRecord(userInfo);
+ }
}
return TokenUtil.createAuthInfo(userInfo);
}
diff --git a/src/main/java/org/springblade/modules/loginrecord/controller/LoginRecordController.java b/src/main/java/org/springblade/modules/loginrecord/controller/LoginRecordController.java
index 1510359..3761f43 100644
--- a/src/main/java/org/springblade/modules/loginrecord/controller/LoginRecordController.java
+++ b/src/main/java/org/springblade/modules/loginrecord/controller/LoginRecordController.java
@@ -38,6 +38,17 @@
}
/**
+ * 自定义分页(企业登录分页记录)
+ * @param query page,size
+ * @param loginRecord 登录记录信息对象
+ */
+ @GetMapping("/getInformationLoginPage")
+ public R<IPage<LoginRecordVo>> getInformationLoginPage(LoginRecordVo loginRecord, Query query) {
+ IPage<LoginRecordVo> pages = loginRecordService.getInformationLoginPage(Condition.getPage(query), loginRecord);
+ return R.data(pages);
+ }
+
+ /**
* 新增
* @param loginRecord 登录记录信息对象
*/
@@ -91,4 +102,14 @@
return R.data(detail);
}
+ /**
+ * 登录情况统计
+ * @param loginRecord 登录记录信息对象
+ */
+ @GetMapping("/getLoginDataStatistics")
+ public R getLoginDataStatistics(LoginRecordVo loginRecord) {
+ return R.data(loginRecordService.getLoginDataStatistics(loginRecord));
+ }
+
+
}
diff --git a/src/main/java/org/springblade/modules/loginrecord/mapper/LoginRecordMapper.java b/src/main/java/org/springblade/modules/loginrecord/mapper/LoginRecordMapper.java
index 540c48f..4974c4a 100644
--- a/src/main/java/org/springblade/modules/loginrecord/mapper/LoginRecordMapper.java
+++ b/src/main/java/org/springblade/modules/loginrecord/mapper/LoginRecordMapper.java
@@ -22,4 +22,14 @@
* @return
*/
List<LoginRecordVo> selectSecurityPaperPage(@Param("page") IPage<LoginRecordVo> page,@Param("loginRecord") LoginRecordVo loginRecord);
+
+ List<Integer> getLoginDataStatistics(@Param("loginRecord") LoginRecordVo loginRecord);
+
+ /**
+ * 自定义分页(企业登录分页记录)
+ * @param page
+ * @param loginRecord
+ * @return
+ */
+ List<LoginRecordVo> getInformationLoginPage(@Param("page") IPage<LoginRecordVo> page,@Param("loginRecord") LoginRecordVo loginRecord);
}
diff --git a/src/main/java/org/springblade/modules/loginrecord/mapper/LoginRecordMapper.xml b/src/main/java/org/springblade/modules/loginrecord/mapper/LoginRecordMapper.xml
index ed3f548..3a8bf07 100644
--- a/src/main/java/org/springblade/modules/loginrecord/mapper/LoginRecordMapper.xml
+++ b/src/main/java/org/springblade/modules/loginrecord/mapper/LoginRecordMapper.xml
@@ -9,7 +9,7 @@
bd.dept_name deptName
from
sys_login_record slr
- left join blade_dept bd on bd.id = slr.dept_id
+ left join blade_dept bd on bd.id = slr.dept_id
<if test="loginRecord.deptName!=null and loginRecord.deptName!=''">
bd.dept_name like concat('%',#{loginRecord.deptName},'%')
</if>
@@ -19,4 +19,124 @@
order by slr.id desc
</select>
+ <!--登录记录统计-->
+ <select id="getLoginDataStatistics" resultType="java.lang.Integer">
+ SELECT
+ count( * )
+ FROM
+ (
+ SELECT
+ a.*,
+ ifnull( b.c, 0 ) num
+ FROM
+ (
+ SELECT
+ si.*
+ FROM
+ sys_information si
+ LEFT JOIN blade_dept bd ON si.departmentid = bd.id
+ left join sys_jurisdiction sj on sj.id = si.jurisdiction
+ WHERE
+ bd.is_deleted = 0
+ AND bd.dept_category = 1
+ <if test="loginRecord.jurisdiction!=null and loginRecord.jurisdiction!='' and loginRecord.jurisdiction!='1372091709474910209'">
+ and (sj.id = #{loginRecord.jurisdiction} or sj.parent_id = #{loginRecord.jurisdiction})
+ </if>
+ ) a
+ LEFT JOIN
+ (
+ SELECT count( * ) c, dept_id FROM `sys_login_record`
+ where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(create_time)
+ GROUP BY dept_id
+ ) b ON a.departmentid = b.dept_id
+ ) c
+ WHERE
+ num > 0 UNION ALL
+ (
+ SELECT
+ count( * )
+ FROM
+ (
+ SELECT
+ a.*,
+ ifnull( b.c, 0 ) num
+ FROM
+ (
+ SELECT
+ si.*
+ FROM
+ sys_information si
+ LEFT JOIN blade_dept bd ON si.departmentid = bd.id
+ left join sys_jurisdiction sj on sj.id = si.jurisdiction
+ WHERE
+ bd.is_deleted = 0
+ AND bd.dept_category = 1
+ <if test="loginRecord.jurisdiction!=null and loginRecord.jurisdiction!='' and loginRecord.jurisdiction!='1372091709474910209'">
+ and (sj.id = #{loginRecord.jurisdiction} or sj.parent_id = #{loginRecord.jurisdiction})
+ </if>
+ ) a
+ LEFT JOIN
+ (
+ SELECT count( * ) c, dept_id FROM `sys_login_record`
+ where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(create_time)
+ GROUP BY dept_id
+ ) b ON a.departmentid = b.dept_id
+ ) c
+ WHERE
+ num = 0
+ )
+ </select>
+
+ <!--自定义分页(企业登录分页记录)-->
+ <select id="getInformationLoginPage" resultType="org.springblade.modules.loginrecord.vo.LoginRecordVo">
+ select * from (
+ SELECT
+ a.enterpriseName deptName,
+ a.stats,
+ sj.dept_name jurisdictionName,
+ ifnull( b.c, 0 ) num,
+ c.create_time createTime
+ FROM
+ (
+ SELECT
+ si.*
+ FROM
+ sys_information si
+ LEFT JOIN blade_dept bd ON si.departmentid = bd.id
+ WHERE
+ bd.is_deleted = 0
+ AND bd.dept_category = 1
+ ) a
+ left join
+ (
+ SELECT count( * ) c, dept_id FROM `sys_login_record`
+ where 1=1
+ <if test="loginRecord.startTime!=null and loginRecord.startTime!=''">
+ and date(create_time) >= #{loginRecord.startTime}
+ </if>
+ <if test="loginRecord.endTime!=null and loginRecord.endTime!=''">
+ and date(create_time) <= #{loginRecord.endTime}
+ </if>
+ GROUP BY dept_id
+ ) b ON a.departmentid = b.dept_id
+ left join
+ (
+ select dept_id,max(create_time) create_time from sys_login_record GROUP BY dept_id
+ ) c on a.departmentid = c.dept_id
+ left join sys_jurisdiction sj on a.jurisdiction = sj.id
+ where 1=1
+ <if test="loginRecord.jurisdiction!=null and loginRecord.jurisdiction!='' and loginRecord.jurisdiction!='1372091709474910209'">
+ and (sj.id = #{loginRecord.jurisdiction} or sj.parent_id = #{loginRecord.jurisdiction})
+ </if>
+ <if test="loginRecord.deptName!=null and loginRecord.deptName!=''">
+ and a.enterpriseName like concat('%',#{loginRecord.deptName},'%')
+ </if>
+ ) r where 1=1
+ <if test="loginRecord.types ==1">
+ and r.num = 0
+ </if>
+ <if test="loginRecord.types ==2">
+ and r.num > 0
+ </if>
+ </select>
</mapper>
diff --git a/src/main/java/org/springblade/modules/loginrecord/service/LoginRecordService.java b/src/main/java/org/springblade/modules/loginrecord/service/LoginRecordService.java
index 8eedbba..c13a8b4 100644
--- a/src/main/java/org/springblade/modules/loginrecord/service/LoginRecordService.java
+++ b/src/main/java/org/springblade/modules/loginrecord/service/LoginRecordService.java
@@ -17,4 +17,18 @@
* @param loginRecord 登录记录信息对象
*/
IPage<LoginRecordVo> selectSecurityPaperPage(IPage<LoginRecordVo> page, LoginRecordVo loginRecord);
+
+ /**
+ * 登录情况统计
+ * @param loginRecord 登录记录信息对象
+ */
+ Object getLoginDataStatistics(LoginRecordVo loginRecord);
+
+ /**
+ * 自定义分页(企业登录分页记录)
+ * @param page
+ * @param loginRecord
+ * @return
+ */
+ IPage<LoginRecordVo> getInformationLoginPage(IPage<LoginRecordVo> page, LoginRecordVo loginRecord);
}
diff --git a/src/main/java/org/springblade/modules/loginrecord/service/impl/LoginRecordServiceImpl.java b/src/main/java/org/springblade/modules/loginrecord/service/impl/LoginRecordServiceImpl.java
index bc6fa2b..fe67b12 100644
--- a/src/main/java/org/springblade/modules/loginrecord/service/impl/LoginRecordServiceImpl.java
+++ b/src/main/java/org/springblade/modules/loginrecord/service/impl/LoginRecordServiceImpl.java
@@ -29,4 +29,25 @@
public IPage<LoginRecordVo> selectSecurityPaperPage(IPage<LoginRecordVo> page, LoginRecordVo loginRecord) {
return page.setRecords(baseMapper.selectSecurityPaperPage(page,loginRecord));
}
+
+ /**
+ * 登录情况统计
+ * @param loginRecord 登录记录信息对象
+ */
+ @Override
+ public Object getLoginDataStatistics(LoginRecordVo loginRecord) {
+ //统计企业未登录与已登录情况统计对比
+ return baseMapper.getLoginDataStatistics(loginRecord);
+ }
+
+ /**
+ * 自定义分页(企业登录分页记录)
+ * @param page
+ * @param loginRecord
+ * @return
+ */
+ @Override
+ public IPage<LoginRecordVo> getInformationLoginPage(IPage<LoginRecordVo> page, LoginRecordVo loginRecord) {
+ return page.setRecords(baseMapper.getInformationLoginPage(page,loginRecord));
+ }
}
diff --git a/src/main/java/org/springblade/modules/loginrecord/vo/LoginRecordVo.java b/src/main/java/org/springblade/modules/loginrecord/vo/LoginRecordVo.java
index 60624bd..4b203c4 100644
--- a/src/main/java/org/springblade/modules/loginrecord/vo/LoginRecordVo.java
+++ b/src/main/java/org/springblade/modules/loginrecord/vo/LoginRecordVo.java
@@ -13,5 +13,45 @@
@Data
public class LoginRecordVo extends LoginRecord implements Serializable {
+ /**
+ * 公司名称
+ */
private String deptName;
+
+ /**
+ * 辖区
+ */
+ private String jurisdiction;
+
+ /**
+ * 开始时间
+ */
+ private String startTime;
+
+ /**
+ * 截止时间
+ */
+ private String endTime;
+
+ /**
+ * 企业属性
+ */
+ private String stats;
+
+ /**
+ * 辖区名称
+ */
+ private String jurisdictionName;
+
+ /**
+ * 数量
+ */
+ private Integer num;
+
+ /**
+ * 是否无登录记录 1:无登录记录 2:有登录记录
+ */
+ private Integer types;
+
+
}
--
Gitblit v1.9.3