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); } 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)); } } 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); } 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> 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); } 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)); } } 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; }