Sfoglia il codice sorgente

refactor:操作日志服务、用户在线监控服务、系统访问服务

tangfudong 2 anni fa
parent
commit
dfbdf118db
17 ha cambiato i file con 425 aggiunte e 29 eliminazioni
  1. 3 1
      iot-common/iot-common-dao/iot-data-service/src/main/java/cc/iotkit/data/system/ISysOperLogData.java
  2. 1 3
      iot-common/iot-common-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/model/TbSysLogininfor.java
  3. 5 2
      iot-common/iot-common-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/model/TbSysOperLog.java
  4. 65 0
      iot-common/iot-common-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/SysLogininfoDataImpl.java
  5. 69 0
      iot-common/iot-common-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/SysOperLogDataImpl.java
  6. 1 1
      iot-common/iot-common-log/.flattened-pom.xml
  7. 1 1
      iot-common/iot-common-log/src/main/java/cc/iotkit/common/log/event/OperLogEvent.java
  8. 93 0
      iot-module/iot-system/src/main/java/cc/iotkit/system/controller/SysLogininforController.java
  9. 80 0
      iot-module/iot-system/src/main/java/cc/iotkit/system/controller/SysOperlogController.java
  10. 92 0
      iot-module/iot-system/src/main/java/cc/iotkit/system/controller/SysUserOnlineController.java
  11. 1 1
      iot-module/iot-system/src/main/java/cc/iotkit/system/dto/bo/SysOperLogBo.java
  12. 2 3
      iot-module/iot-system/src/main/java/cc/iotkit/system/dto/vo/SysLogininforVo.java
  13. 1 1
      iot-module/iot-system/src/main/java/cc/iotkit/system/dto/vo/SysOperLogVo.java
  14. 1 1
      iot-module/iot-system/src/main/java/cc/iotkit/system/service/ISysLogininforService.java
  15. 1 1
      iot-module/iot-system/src/main/java/cc/iotkit/system/service/ISysOperLogService.java
  16. 2 8
      iot-module/iot-system/src/main/java/cc/iotkit/system/service/impl/SysLogininforServiceImpl.java
  17. 7 6
      iot-module/iot-system/src/main/java/cc/iotkit/system/service/impl/SysOperLogServiceImpl.java

+ 3 - 1
iot-common/iot-common-dao/iot-data-service/src/main/java/cc/iotkit/data/system/ISysOperLogData.java

@@ -1,7 +1,7 @@
 package cc.iotkit.data.system;
 
-import cc.iotkit.data.ICommonData;
 import cc.iotkit.common.api.Paging;
+import cc.iotkit.data.ICommonData;
 import cc.iotkit.model.system.SysOperLog;
 
 /**
@@ -23,4 +23,6 @@ public interface ISysOperLogData extends ICommonData<SysOperLog, Long> {
      * @param tenantId 租户id
      */
     void deleteByTenantId(String tenantId);
+
+    void deleteAll();
 }

+ 1 - 3
iot-common/iot-common-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/model/TbSysLogininfor.java

@@ -1,7 +1,5 @@
 package cc.iotkit.data.model;
 
-import cc.iotkit.data.model.BaseEntity;
-import cc.iotkit.model.system.SysDictData;
 import cc.iotkit.model.system.SysLogininfor;
 import io.github.linpeilie.annotations.AutoMapper;
 import io.swagger.annotations.ApiModelProperty;
@@ -28,7 +26,7 @@ public class TbSysLogininfor extends BaseEntity {
      */
     @Id
     @ApiModelProperty(value = "ID")
-    private Long infoId;
+    private Long id;
 
     /**
      * 租户编号

+ 5 - 2
iot-common/iot-common-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/model/TbSysOperLog.java

@@ -1,13 +1,14 @@
 package cc.iotkit.data.model;
 
-import cc.iotkit.model.system.SysLogininfor;
 import cc.iotkit.model.system.SysOperLog;
 import io.github.linpeilie.annotations.AutoMapper;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.hibernate.annotations.GenericGenerator;
 
 import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
 import javax.persistence.Table;
 import java.io.Serializable;
@@ -30,8 +31,10 @@ public class TbSysOperLog implements Serializable {
      * 日志主键
      */
     @Id
+    @GeneratedValue(generator = "SnowflakeIdGenerator")
+    @GenericGenerator(name = "SnowflakeIdGenerator", strategy = "cc.iotkit.data.config.id.SnowflakeIdGenerator")
     @ApiModelProperty(value = "日志主键")
-    private Long operId;
+    private Long id;
 
     /**
      * 租户编号

+ 65 - 0
iot-common/iot-common-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/SysLogininfoDataImpl.java

@@ -0,0 +1,65 @@
+package cc.iotkit.data.service;
+
+import cc.iotkit.common.api.Paging;
+import cc.iotkit.common.utils.MapstructUtils;
+import cc.iotkit.common.utils.StringUtils;
+import cc.iotkit.data.dao.SysLogininforRepository;
+import cc.iotkit.data.model.TbSysLogininfor;
+import cc.iotkit.data.system.ISysLogininforData;
+import cc.iotkit.data.util.PredicateBuilder;
+import cc.iotkit.model.system.SysLogininfor;
+import com.querydsl.jpa.impl.JPAQueryFactory;
+import lombok.RequiredArgsConstructor;
+import org.springframework.context.annotation.Primary;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+import java.util.List;
+
+import static cc.iotkit.data.model.QTbSysLogininfor.tbSysLogininfor;
+
+/**
+ * @Author:tfd
+ * @Date:2023/5/31 15:58
+ */
+@Primary
+@Service
+@RequiredArgsConstructor
+public class SysLogininfoDataImpl implements ISysLogininforData {
+
+    private SysLogininforRepository logininfoRepository;
+
+
+    private final JPAQueryFactory jpaQueryFactory;
+
+    @Override
+    public List<SysLogininfor> findByConditions(SysLogininfor data) {
+        List<TbSysLogininfor> ret=jpaQueryFactory.selectFrom(tbSysLogininfor).where(PredicateBuilder.instance()
+                .and(StringUtils.isNotBlank(data.getIpaddr()),()->tbSysLogininfor.ipaddr.like(data.getIpaddr()))
+                .and(StringUtils.isNotBlank(data.getStatus()),()->tbSysLogininfor.status.eq(data.getStatus()))
+                .and(StringUtils.isNotBlank(data.getUserName()),()->tbSysLogininfor.userName.like(data.getUserName()))
+                .build())
+                .orderBy(tbSysLogininfor.id.desc()).fetch();
+        return MapstructUtils.convert(ret, SysLogininfor.class);
+    }
+
+    @Override
+    public Paging<SysLogininfor> findByConditions(SysLogininfor cond, int page, int size) {
+        return null;
+    }
+
+    @Override
+    public void deleteByTenantId(String tenantId) {
+
+    }
+
+    @Override
+    public void deleteAll() {
+        logininfoRepository.deleteAll();
+    }
+
+    @Override
+    public void deleteByIds(Collection<Long> longs) {
+        logininfoRepository.deleteAllByIdInBatch(longs);
+    }
+}

+ 69 - 0
iot-common/iot-common-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/SysOperLogDataImpl.java

@@ -0,0 +1,69 @@
+package cc.iotkit.data.service;
+
+import cc.iotkit.common.api.Paging;
+import cc.iotkit.common.utils.MapstructUtils;
+import cc.iotkit.common.utils.StringUtils;
+import cc.iotkit.data.dao.SysOperLogRepository;
+import cc.iotkit.data.model.TbSysOperLog;
+import cc.iotkit.data.system.ISysOperLogData;
+import cc.iotkit.data.util.PredicateBuilder;
+import cc.iotkit.model.system.SysOperLog;
+import cn.hutool.core.util.ArrayUtil;
+import com.querydsl.jpa.impl.JPAQueryFactory;
+import lombok.RequiredArgsConstructor;
+import org.springframework.context.annotation.Primary;
+import org.springframework.stereotype.Service;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+
+import static cc.iotkit.data.model.QTbSysOperLog.tbSysOperLog;
+
+/**
+ * @Author:tfd
+ * @Date:2023/5/31 15:24
+ */
+@Primary
+@Service
+@RequiredArgsConstructor
+public class SysOperLogDataImpl implements ISysOperLogData {
+
+    private SysOperLogRepository operLogRepository;
+
+
+    private final JPAQueryFactory jpaQueryFactory;
+
+    @Override
+    public Paging<SysOperLog> findByConditions(String tenantId, String title, Integer businessType, Integer status, int page, int size) {
+        return null;
+    }
+
+    @Override
+    public void deleteByTenantId(String tenantId) {
+
+    }
+
+    @Override
+    public void deleteAll() {
+        operLogRepository.deleteAll();
+    }
+
+    @Override
+    public void deleteByIds(Collection<Long> longs) {
+        operLogRepository.deleteAllByIdInBatch(longs);
+    }
+
+    @Override
+    public List<SysOperLog> findAllByCondition(SysOperLog data) {
+        List<TbSysOperLog> ret=jpaQueryFactory.selectFrom(tbSysOperLog).where(PredicateBuilder.instance()
+                .and(StringUtils.isNotBlank(data.getTitle()),()->tbSysOperLog.title.like(data.getTitle()))
+                .and(data.getBusinessType()!=null&&data.getBusinessType()>0,()->tbSysOperLog.businessType.eq(data.getBusinessType()))
+                .and(ArrayUtil.isNotEmpty(data.getBusinessTypes()),()->tbSysOperLog.businessType.in(Arrays.asList(data.getBusinessTypes())))
+                .and(data.getStatus() != null && data.getStatus() > 0,()->tbSysOperLog.status.eq(data.getStatus()))
+                .and(StringUtils.isNotBlank(data.getOperName()),()->tbSysOperLog.operName.like(data.getOperName()))
+                .build())
+                .orderBy(tbSysOperLog.id.desc()).fetch();
+        return MapstructUtils.convert(ret, SysOperLog.class);
+    }
+}

+ 1 - 1
iot-common/iot-common-log/.flattened-pom.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <modelVersion>4.0.0</modelVersion>
   <parent>

+ 1 - 1
iot-common/iot-common-log/src/main/java/cc/iotkit/common/log/event/OperLogEvent.java

@@ -18,7 +18,7 @@ public class OperLogEvent implements Serializable {
     /**
      * 日志主键
      */
-    private Long operId;
+    private Long id;
 
     /**
      * 租户ID

+ 93 - 0
iot-module/iot-system/src/main/java/cc/iotkit/system/controller/SysLogininforController.java

@@ -0,0 +1,93 @@
+package cc.iotkit.system.controller;
+
+import cc.iotkit.common.api.PageRequest;
+import cc.iotkit.common.api.Paging;
+import cc.iotkit.common.constant.GlobalConstants;
+import cc.iotkit.common.excel.utils.ExcelUtil;
+import cc.iotkit.common.log.annotation.Log;
+import cc.iotkit.common.log.enums.BusinessType;
+import cc.iotkit.common.redis.utils.RedisUtils;
+import cc.iotkit.common.validate.QueryGroup;
+import cc.iotkit.common.web.core.BaseController;
+import cc.iotkit.system.dto.bo.SysLogininforBo;
+import cc.iotkit.system.dto.vo.SysLogininforVo;
+import cc.iotkit.system.service.ISysLogininforService;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * @Author:tfd
+ * @Date:2023/5/31 15:53
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/monitor/logininfor")
+@Api(tags = "系统访问记录")
+public class SysLogininforController extends BaseController {
+
+    private final ISysLogininforService logininforService;
+
+    /**
+     * 获取系统访问记录列表
+     */
+    @ApiOperation("获取系统访问记录列表")
+    @SaCheckPermission("monitor:logininfor:list")
+    @PostMapping("/list")
+    public Paging<SysLogininforVo> list(@RequestBody @Validated(QueryGroup.class) PageRequest<SysLogininforBo> query) {
+        return logininforService.selectPageLogininforList(query);
+    }
+
+    /**
+     * 导出系统访问记录列表
+     */
+    @ApiOperation("获取系统访问记录列表")
+    @Log(title = "登录日志", businessType = BusinessType.EXPORT)
+    @SaCheckPermission("monitor:logininfor:export")
+    @PostMapping("/export")
+    public void export(SysLogininforBo logininfor, HttpServletResponse response) {
+        List<SysLogininforVo> list = logininforService.selectLogininforList(logininfor);
+        ExcelUtil.exportExcel(list, "登录日志", SysLogininforVo.class, response);
+    }
+
+    /**
+     * 批量删除登录日志
+     * @param infoIds 日志ids
+     */
+    @ApiOperation("批量删除登录日志")
+    @SaCheckPermission("monitor:logininfor:remove")
+    @Log(title = "登录日志", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{infoIds}")
+    public void remove(@PathVariable Long[] infoIds) {
+        logininforService.deleteLogininforByIds(List.of(infoIds));
+    }
+
+    /**
+     * 清理系统访问记录
+     */
+    @ApiOperation("清理系统访问记录")
+    @SaCheckPermission("monitor:logininfor:remove")
+    @Log(title = "登录日志", businessType = BusinessType.CLEAN)
+    @DeleteMapping("/clean")
+    public void clean() {
+        logininforService.cleanLogininfor();
+    }
+
+    @ApiOperation("账户解锁")
+    @SaCheckPermission("monitor:logininfor:unlock")
+    @Log(title = "账户解锁", businessType = BusinessType.OTHER)
+    @GetMapping("/unlock/{userName}")
+    public void unlock(@PathVariable("userName") String userName) {
+        String loginName = GlobalConstants.PWD_ERR_CNT_KEY + userName;
+        if (RedisUtils.hasKey(loginName)) {
+            RedisUtils.deleteObject(loginName);
+        }
+    }
+}

+ 80 - 0
iot-module/iot-system/src/main/java/cc/iotkit/system/controller/SysOperlogController.java

@@ -0,0 +1,80 @@
+package cc.iotkit.system.controller;
+
+import cc.iotkit.common.api.PageRequest;
+import cc.iotkit.common.api.Paging;
+import cc.iotkit.common.excel.utils.ExcelUtil;
+import cc.iotkit.common.log.annotation.Log;
+import cc.iotkit.common.log.enums.BusinessType;
+import cc.iotkit.common.validate.QueryGroup;
+import cc.iotkit.common.web.core.BaseController;
+import cc.iotkit.system.dto.bo.SysOperLogBo;
+import cc.iotkit.system.dto.vo.SysOperLogVo;
+import cc.iotkit.system.service.ISysOperLogService;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * @Author:tfd
+ * @Date:2023/5/31 15:08
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/monitor/operlog")
+@Api(tags = "操作日志记录")
+public class SysOperlogController extends BaseController {
+
+    private final ISysOperLogService operLogService;
+
+    /**
+     * 获取操作日志记录列表
+     */
+    @ApiOperation("获取操作日志记录列表")
+    @SaCheckPermission("monitor:operlog:list")
+    @PostMapping("/list")
+    public Paging<SysOperLogVo> list(@RequestBody @Validated(QueryGroup.class) PageRequest<SysOperLogBo> query) {
+        return operLogService.selectPageOperLogList(query);
+    }
+
+    /**
+     * 导出操作日志记录列表
+     */
+    @ApiOperation("导出操作日志记录列表")
+    @Log(title = "操作日志", businessType = BusinessType.EXPORT)
+    @SaCheckPermission("monitor:operlog:export")
+    @PostMapping("/export")
+    public void export(SysOperLogBo operLog, HttpServletResponse response) {
+        List<SysOperLogVo> list = operLogService.selectOperLogList(operLog);
+        ExcelUtil.exportExcel(list, "操作日志", SysOperLogVo.class, response);
+    }
+
+    /**
+     * 批量删除操作日志记录
+     * @param operIds 日志ids
+     */
+    @ApiOperation("批量删除操作日志记录")
+    @Log(title = "操作日志", businessType = BusinessType.DELETE)
+    @SaCheckPermission("monitor:operlog:remove")
+    @DeleteMapping("/{operIds}")
+    public void remove(@PathVariable Long[] operIds) {
+        operLogService.deleteOperLogByIds(List.of(operIds));
+    }
+
+    /**
+     * 清理操作日志记录
+     */
+    @ApiOperation("清理操作日志记录")
+    @Log(title = "操作日志", businessType = BusinessType.CLEAN)
+    @SaCheckPermission("monitor:operlog:remove")
+    @DeleteMapping("/clean")
+    public void clean() {
+        operLogService.cleanOperLog();
+    }
+}

+ 92 - 0
iot-module/iot-system/src/main/java/cc/iotkit/system/controller/SysUserOnlineController.java

@@ -0,0 +1,92 @@
+package cc.iotkit.system.controller;
+
+import cc.iotkit.common.api.Paging;
+import cc.iotkit.common.constant.CacheConstants;
+import cc.iotkit.common.log.annotation.Log;
+import cc.iotkit.common.log.enums.BusinessType;
+import cc.iotkit.common.redis.utils.RedisUtils;
+import cc.iotkit.common.undefined.UserOnlineDTO;
+import cc.iotkit.common.utils.StreamUtils;
+import cc.iotkit.common.utils.StringUtils;
+import cc.iotkit.common.web.core.BaseController;
+import cc.iotkit.system.dto.SysUserOnline;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.dev33.satoken.exception.NotLoginException;
+import cn.dev33.satoken.stp.StpUtil;
+import cn.hutool.core.bean.BeanUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * @Author:tfd
+ * @Date:2023/5/31 16:08
+ */
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/monitor/online")
+@Api(tags = "用户在线监控")
+public class SysUserOnlineController extends BaseController {
+
+    /**
+     * 获取在线用户监控列表
+     *
+     * @param ipaddr   IP地址
+     * @param userName 用户名
+     */
+    @ApiOperation("获取在线用户监控列表")
+    @SaCheckPermission("monitor:online:list")
+    @GetMapping("/list")
+    public Paging<SysUserOnline> list(String ipaddr, String userName) {
+        // 获取所有未过期的 token
+        List<String> keys = StpUtil.searchTokenValue("", 0, -1, false);
+        List<UserOnlineDTO> userOnlineDTOList = new ArrayList<>();
+        for (String key : keys) {
+            String token = StringUtils.substringAfterLast(key, ":");
+            // 如果已经过期则跳过
+            if (StpUtil.stpLogic.getTokenActivityTimeoutByToken(token) < -1) {
+                continue;
+            }
+            userOnlineDTOList.add(RedisUtils.getCacheObject(CacheConstants.ONLINE_TOKEN_KEY + token));
+        }
+        if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName)) {
+            userOnlineDTOList = StreamUtils.filter(userOnlineDTOList, userOnline ->
+                    StringUtils.equals(ipaddr, userOnline.getIpaddr()) &&
+                            StringUtils.equals(userName, userOnline.getUserName())
+            );
+        } else if (StringUtils.isNotEmpty(ipaddr)) {
+            userOnlineDTOList = StreamUtils.filter(userOnlineDTOList, userOnline ->
+                    StringUtils.equals(ipaddr, userOnline.getIpaddr())
+            );
+        } else if (StringUtils.isNotEmpty(userName)) {
+            userOnlineDTOList = StreamUtils.filter(userOnlineDTOList, userOnline ->
+                    StringUtils.equals(userName, userOnline.getUserName())
+            );
+        }
+        Collections.reverse(userOnlineDTOList);
+        userOnlineDTOList.removeAll(Collections.singleton(null));
+        List<SysUserOnline> userOnlineList = BeanUtil.copyToList(userOnlineDTOList, SysUserOnline.class);
+        return null;
+    }
+
+    /**
+     * 强退用户
+     *
+     * @param tokenId token值
+     */
+    @ApiOperation("强退用户")
+    @SaCheckPermission("monitor:online:forceLogout")
+    @Log(title = "在线用户", businessType = BusinessType.FORCE)
+    @DeleteMapping("/{tokenId}")
+    public void forceLogout(@PathVariable String tokenId) {
+        try {
+            StpUtil.kickoutByTokenValue(tokenId);
+        } catch (NotLoginException ignored) {
+        }
+    }
+}

+ 1 - 1
iot-module/iot-system/src/main/java/cc/iotkit/system/dto/bo/SysOperLogBo.java

@@ -28,7 +28,7 @@ public class SysOperLogBo extends BaseDto {
     /**
      * 日志主键
      */
-    private Long operId;
+    private Long id;
 
     /**
      * 租户编号

+ 2 - 3
iot-module/iot-system/src/main/java/cc/iotkit/system/dto/vo/SysLogininforVo.java

@@ -1,7 +1,5 @@
 package cc.iotkit.system.dto.vo;
 
-import java.util.Date;
-
 import cc.iotkit.common.excel.annotation.ExcelDictFormat;
 import cc.iotkit.common.excel.convert.ExcelDictConvert;
 import cc.iotkit.model.system.SysLogininfor;
@@ -11,6 +9,7 @@ import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.util.Date;
 
 
 
@@ -30,7 +29,7 @@ public class SysLogininforVo implements Serializable {
      * 访问ID
      */
     @ExcelProperty(value = "序号")
-    private Long infoId;
+    private Long id;
 
     /**
      * 租户编号

+ 1 - 1
iot-module/iot-system/src/main/java/cc/iotkit/system/dto/vo/SysOperLogVo.java

@@ -29,7 +29,7 @@ public class SysOperLogVo extends BaseDto implements Serializable {
      * 日志主键
      */
     @ExcelProperty(value = "日志主键")
-    private Long operId;
+    private Long id;
 
     /**
      * 租户编号

+ 1 - 1
iot-module/iot-system/src/main/java/cc/iotkit/system/service/ISysLogininforService.java

@@ -16,7 +16,7 @@ import java.util.List;
 public interface ISysLogininforService {
 
 
-    Paging<SysLogininforVo> selectPageLogininforList(SysLogininforBo logininfor, PageRequest<?> query);
+    Paging<SysLogininforVo> selectPageLogininforList(PageRequest<?> query);
 
     /**
      * 新增系统登录日志

+ 1 - 1
iot-module/iot-system/src/main/java/cc/iotkit/system/service/ISysOperLogService.java

@@ -15,7 +15,7 @@ import java.util.List;
  */
 public interface ISysOperLogService {
 
-    Paging<SysOperLogVo> selectPageOperLogList(SysOperLogBo operLog, PageRequest<?> query);
+    Paging<SysOperLogVo> selectPageOperLogList(PageRequest<?> query);
 
     /**
      * 新增操作日志

+ 2 - 8
iot-module/iot-system/src/main/java/cc/iotkit/system/service/impl/SysLogininforServiceImpl.java

@@ -85,14 +85,8 @@ public class SysLogininforServiceImpl implements ISysLogininforService {
     }
 
     @Override
-    public Paging<SysLogininforVo> selectPageLogininforList(SysLogininforBo logininfor, PageRequest<?> query) {
-        return MapstructUtils.convert(
-                sysLogininforData.findByConditions(
-                        MapstructUtils.convert(logininfor, SysLogininfor.class),
-                        query.getPageNum(),
-                        query.getPageSize()
-                ), SysLogininforVo.class
-        );
+    public Paging<SysLogininforVo> selectPageLogininforList(PageRequest<?> query) {
+        return null;
     }
 
     /**

+ 7 - 6
iot-module/iot-system/src/main/java/cc/iotkit/system/service/impl/SysOperLogServiceImpl.java

@@ -4,20 +4,20 @@ import cc.iotkit.common.api.PageRequest;
 import cc.iotkit.common.api.Paging;
 import cc.iotkit.common.log.event.OperLogEvent;
 import cc.iotkit.common.utils.MapstructUtils;
-import cc.iotkit.common.utils.StringUtils;
 import cc.iotkit.common.utils.ip.AddressUtils;
 import cc.iotkit.data.system.ISysOperLogData;
 import cc.iotkit.model.system.SysOperLog;
 import cc.iotkit.system.dto.bo.SysOperLogBo;
 import cc.iotkit.system.dto.vo.SysOperLogVo;
-import cn.hutool.core.util.ArrayUtil;
 import cc.iotkit.system.service.ISysOperLogService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.context.event.EventListener;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
-import java.util.*;
+import java.util.Collection;
+import java.util.Date;
+import java.util.List;
 
 /**
  * 操作日志 服务层处理
@@ -45,8 +45,8 @@ public class SysOperLogServiceImpl implements ISysOperLogService {
     }
 
     @Override
-    public Paging<SysOperLogVo> selectPageOperLogList(SysOperLogBo operLog, PageRequest<?> query) {
-        return new Paging<>();
+    public Paging<SysOperLogVo> selectPageOperLogList(PageRequest<?> query) {
+        return sysOperLogData.findAll(query.to(SysOperLog.class)).to(SysOperLogVo.class);
     }
 
     /**
@@ -68,7 +68,7 @@ public class SysOperLogServiceImpl implements ISysOperLogService {
      */
     @Override
     public List<SysOperLogVo> selectOperLogList(SysOperLogBo operLog) {
-        return new ArrayList<>();
+        return MapstructUtils.convert(sysOperLogData.findAllByCondition(operLog.to(SysOperLog.class)),SysOperLogVo.class);
     }
 
     /**
@@ -98,5 +98,6 @@ public class SysOperLogServiceImpl implements ISysOperLogService {
      */
     @Override
     public void cleanOperLog() {
+        sysOperLogData.deleteAll();
     }
 }