whyclxw
2022-03-23 77d1e90c54da353f1d74966994cf3cf1887b4fc0
Merge branch 'master' of http://118.89.139.230:10101/r/fg_v2.0
4个文件已修改
85 ■■■■■ 已修改文件
src/main/java/com/whyc/exception/CustomExceptionResultHandler.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/UserLog.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/UserLogService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/UserLogMapper.xml 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/exception/CustomExceptionResultHandler.java
@@ -26,11 +26,12 @@
    @ResponseStatus(HttpStatus.ACCEPTED)
    public Response sendErrorResponse2Defined(Exception e, HttpServletResponse response, HttpServletRequest request){
        String exceptionStr = e.toString();
        String requestURI = request.getRequestURI();
        //单项提取-登录超时
        if(exceptionStr.contains("login") && exceptionStr.contains("imeout")){
            CommonUtil.record(ActionUtil.getUser().getUId(), UserOperation.TYPE_LOGIN_TIMEOUT.getType(),"登录请求超时","异常信息:"+ exceptionStr);
        }else {
            CommonUtil.record(ActionUtil.getUser().getUId(), UserOperation.TYPE_EXCEPTION.getType(), "接口请求异常", "异常信息:" + exceptionStr);
            CommonUtil.record(ActionUtil.getUser().getUId(), UserOperation.TYPE_EXCEPTION.getType(), "接口调用异常:调用接口"+requestURI+"发生错误:"+exceptionStr);
        }
        return new Response().setII(0,"接口请求异常,请联系软件人员进行处理.异常信息"+ exceptionStr);
    }
src/main/java/com/whyc/pojo/UserLog.java
@@ -34,6 +34,8 @@
    private String operationTypeStr;
    @TableField(exist = false)
    private String uName;
    @TableField(exist = false)
    private Integer eventType;
    public String getOperationTypeStr() {
        return operationTypeStr;
@@ -114,4 +116,12 @@
    public void setUName(String uName) {
        this.uName = uName;
    }
    public Integer getEventType() {
        return eventType;
    }
    public void setEventType(Integer eventType) {
        this.eventType = eventType;
    }
}
src/main/java/com/whyc/service/UserLogService.java
@@ -29,7 +29,7 @@
    public PageInfo<UserLog>getPage(int pageNum, int pageSize, UserLog userLog) {
        PageHelper.startPage(pageNum,pageSize,true);
        //List<UserLog> userLogList = mapper.selectList(wrapper);
        //这个接口要兼容新老审计日志记录的查询
        List<UserLog> userLogList = mapper.getList(userLog);
        userLogList.stream().forEach(userLog1 -> {
            switch (userLog1.getOperationType()){
@@ -38,6 +38,12 @@
                case 3: userLog1.setOperationTypeStr(UserOperation.TYPE_ADD.getTypeName());break;
                case 4: userLog1.setOperationTypeStr(UserOperation.TYPE_UPDATE.getTypeName());break;
                case 5: userLog1.setOperationTypeStr(UserOperation.TYPE_DELETE.getTypeName());break;
                case 20:userLog1.setOperationTypeStr(UserOperation.TYPE_UNAUTHORIZED_ACCESS.getTypeName());break;
                case 21:userLog1.setOperationTypeStr(UserOperation.TYPE_EXCEPTION.getTypeName());break;
                case 31:userLog1.setOperationTypeStr(UserOperation.TYPE_LOGIN_FAIL.getTypeName());break;
                case 32:userLog1.setOperationTypeStr(UserOperation.TYPE_PARAM_CHANGE.getTypeName());break;
                case 33:userLog1.setOperationTypeStr(UserOperation.TYPE_PASSWORD_CHANGE.getTypeName());break;
                case 34:userLog1.setOperationTypeStr(UserOperation.TYPE_LOGIN_TIMEOUT.getTypeName());break;
                default:userLog1.setOperationTypeStr(UserOperation.TYPE_UNRECOGNIZED.getTypeName());
            }
        });
src/main/resources/mapper/UserLogMapper.xml
@@ -19,8 +19,68 @@
        <if test="uId !=null">
            and l.uId = #{uId}
        </if>
        <if test="operationType !=null">
            and l.uOprateType = #{operationType}
        <!--条件查询-非全部-->
        <if test="eventType !=null">
            <choose>
                <!--系统级别(1)-->
                <when test="eventType ==1">
                    <choose>
                        <when test="operationType ==1
                            or operationType ==2
                            or operationType ==20
                            or operationType ==21
                        ">
                            and uoprateType= #{operationType}
                        </when>
                        <when test="operationType ==31
                            or operationType ==32
                            or operationType ==33
                            or operationType ==34">
                            and uoprateType= #{operationType}
                            <choose>
                                <when test="operationType ==31">
                                    or uOprateMsg  regexp '登录PC系统失败'
                                </when>
                                <when test="operationType ==32">
                                    or uOprateMsg  regexp '配置参数修改|导航配置'
                                </when>
                                <when test="operationType ==33">
                                    or uOprateMsg  regexp '密码' and uOprateMsg not regexp '更新密码复杂度规则'
                                </when>
                                <otherwise>
                                    or uOprateMsg  regexp 'LoginAction!login|imeout'
                                </otherwise>
                            </choose>
                        </when>
                        <when test="operationType == 3 or operationType == 4 or operationType == 5">
                            and uoprateType= #{operationType}
                            and uOprateMsg  regexp
                            '添加新用户|的用户信息|权限组|审计数据记录容量
                            |执行了User模块|执行了PermitGroup'
                        </when>
                    </choose>
                </when>
                <!--业务级别-机房(2)-->
                <when test="eventType ==2">
                    and uoprateType= #{operationType}
                    and uOprateMsg regexp '单体|电池组|组端|设备|Batt|Dev|FBO|Fbs|Ld9|Li9130|Lithium|Station3D'
                    and uOprateMsg not regexp '电源|Pwrdev'
                </when>
                <!--业务级别-电源(3)-->
                <when test="eventType ==3">
                    and uoprateType= #{operationType}
                    and uOprateMsg regexp 'PowerInf|Pwr'
                </when>
                <!--业务级别-其他(4)-->
                <when test="eventType ==4">
                    and uoprateType= #{operationType}
                    and uOprateMsg not regexp '添加新用户|的用户信息|权限组|审计数据记录容量|配置参数修改|导航配置|密码|单体|电池组|组端|设备|电源|
                    |执行了User模块|执行了PermitGroup|
                    |Batt|Dev|FBO|Fbs|Ld9|Li9130|Lithium|Station3D|
                    |PowerInf|Pwr'
                </when>
            </choose>
        </if>
        ORDER BY uOprateDay DESC
    </select>
</mapper>