Jelajahi Sumber

日志管理修改

caozixuan 3 tahun lalu
induk
melakukan
e7c242d7ab

+ 5 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicCourseController.java

@@ -1,17 +1,18 @@
 package com.qmth.distributed.print.api;
 
-import com.qmth.boot.api.annotation.Aac;
-import com.qmth.boot.api.annotation.BOOL;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.distributed.print.business.service.PrintCommonService;
 import com.qmth.distributed.print.business.templete.execute.AsyncCourseDataImportService;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.bean.params.BasicCourseParams;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicCourse;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.TBTask;
 import com.qmth.teachcloud.common.enums.TaskTypeEnum;
+import com.qmth.teachcloud.common.enums.log.LevelEnum;
+import com.qmth.teachcloud.common.enums.log.OperationTypeEnum;
 import com.qmth.teachcloud.common.service.BasicCourseService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
@@ -125,6 +126,8 @@ public class BasicCourseController {
     @ApiOperation(value = "课程管理-根据查询条件批量启用/禁用")
     @RequestMapping(value = "/enable_by_query", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = EditResult.class)})
+    @OperationLogDetail(detail = "根据查询条件【所属机构id[{{belongOrgId}}],课程名称(模糊查询)[{{courseName}}],创建时间(起始位置)[{{startCreateTime}}]," +
+            "创建时间(终止位置)[{{endCreateTime}}],状态[{{enable}}],启用&禁用操作[{{enableOperate}}]】批量启用/禁用课程",level = LevelEnum.TERTIARY,operationType = OperationTypeEnum.EDIT)
     public Result enableBasicCourseByQuery(@ApiParam(value = "所属机构id") @RequestParam(required = false) String belongOrgId,
                                            @ApiParam(value = "课程名称(模糊查询)") @RequestParam(required = false) String courseName,
                                            @ApiParam(value = "创建时间(起始位置)") @RequestParam(required = false) String startCreateTime,

+ 25 - 5
teachcloud-common/src/main/java/com/qmth/teachcloud/common/aspect/LogAspect.java

@@ -1,12 +1,14 @@
 package com.qmth.teachcloud.common.aspect;
 
 import com.alibaba.fastjson.JSON;
+import com.qmth.boot.api.exception.ApiException;
 import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.bean.dto.LogArgsDto;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicOperationLog;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.service.BasicOperationLogService;
+import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.ProceedingJoinPoint;
@@ -55,20 +57,33 @@ public class LogAspect {
     @Around(value = "operationLog()")
     public Object aroundOperationLogPoint(ProceedingJoinPoint joinPoint) throws Throwable {
         Object res = null;
-        long time = System.currentTimeMillis();
+        long beginTime = System.currentTimeMillis();
+        long endTime = 0;
+        String runStatus = "成功";
         try {
             res = joinPoint.proceed();
-            time = System.currentTimeMillis() - time;
+            endTime = System.currentTimeMillis();
             return res;
+        } catch (Exception e) {
+            endTime = System.currentTimeMillis();
+            res = "Exception: " + e.getMessage();
+            runStatus = "失败";
+            log.error(SystemConstant.LOG_ERROR, e);
+            if (e instanceof ApiException) {
+                return ResultUtil.error((ApiException) e, e.getMessage());
+            } else {
+                return ResultUtil.error(e.getMessage());
+            }
         } finally {
             try {
                 //方法执行完成后增加日志
-                addOperationLog(joinPoint, res, time);
+                addOperationLog(joinPoint, res, endTime - beginTime,runStatus);
             } catch (Exception e) {
                 System.out.println("LogAspect 操作失败:" + e.getMessage());
                 e.printStackTrace();
             }
         }
+
     }
 
     /**
@@ -77,8 +92,9 @@ public class LogAspect {
      * @param joinPoint joinPoint
      * @param res       返回值
      * @param time      方法执行时间
+     * @param runStatus 方法执行状态
      */
-    private void addOperationLog(JoinPoint joinPoint, Object res, long time) {
+    private void addOperationLog(JoinPoint joinPoint, Object res, long time,String runStatus) {
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         String userName = requestUser.getRealName();
         HttpServletRequest request = ServletUtil.getRequest();
@@ -97,6 +113,7 @@ public class LogAspect {
         operationLog.setMethod(methodName);
         operationLog.setArgs(this.getTranslateArgs(paramsName, args));
         operationLog.setRunTime(time);
+        operationLog.setRunStatus(runStatus);
         operationLog.setReturnValue(JSON.toJSONString(res));
         operationLog.setUserId(requestUser.getId());
         operationLog.setUserName(userName);
@@ -122,7 +139,7 @@ public class LogAspect {
                 continue;
             }
             LogArgsDto logArgsDto = new LogArgsDto();
-            logArgsDto.setArg(String.valueOf(args[i]));
+            logArgsDto.setArg(args[i]);
             logArgsDto.setParamName(paramsName[i]);
             logArgsDtoList.add(logArgsDto);
         }
@@ -142,6 +159,9 @@ public class LogAspect {
 
         Map<Object, Object> map = new HashMap<>();
         for (int i = 0; i < argNames.length; i++) {
+            if (Objects.nonNull(args[i]) && (args[i] instanceof HttpServletRequest || args[i] instanceof HttpServletResponse || args[i] instanceof CommonsMultipartFile || args[i] instanceof MultipartFile || args[i] instanceof BeanPropertyBindingResult)) {
+                continue;
+            }
             map.put(argNames[i], args[i]);
         }
 

+ 3 - 3
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/dto/LogArgsDto.java

@@ -9,16 +9,16 @@ import io.swagger.annotations.ApiModelProperty;
  */
 public class LogArgsDto {
     @ApiModelProperty(value = "参数")
-    private String arg;
+    private Object arg;
 
     @ApiModelProperty(value = "参数名称")
     private String paramName;
 
-    public String getArg() {
+    public Object getArg() {
         return arg;
     }
 
-    public void setArg(String arg) {
+    public void setArg(Object arg) {
         this.arg = arg;
     }
 

+ 11 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/BasicOperationLog.java

@@ -55,6 +55,9 @@ public class BasicOperationLog implements Serializable {
     @JsonSerialize(using = ToStringSerializer.class)
     private Long runTime;
 
+    @ApiModelProperty(value = "运行状态")
+    private String runStatus;
+
     @ApiModelProperty(value = "方法返回值")
     private String returnValue;
 
@@ -157,6 +160,14 @@ public class BasicOperationLog implements Serializable {
         this.runTime = runTime;
     }
 
+    public String getRunStatus() {
+        return runStatus;
+    }
+
+    public void setRunStatus(String runStatus) {
+        this.runStatus = runStatus;
+    }
+
     public String getReturnValue() {
         return returnValue;
     }