| | |
| | | import com.zy.asrs.common.utils.IpTools; |
| | | import com.zy.asrs.framework.common.Cools; |
| | | import com.zy.asrs.wcs.common.annotation.OperationLog; |
| | | import com.zy.asrs.wcs.sys.entity.OperationRecord; |
| | | import com.zy.asrs.wcs.sys.entity.User; |
| | | import com.zy.asrs.wcs.sys.service.OperationRecordService; |
| | | import com.zy.asrs.wcs.utils.Utils; |
| | | import com.zy.asrs.wcs.system.entity.OperationRecord; |
| | | import com.zy.asrs.wcs.system.entity.User; |
| | | import com.zy.asrs.wcs.system.service.OperationRecordService; |
| | | import com.zy.asrs.wcs.utils.CommonUtils; |
| | | import org.aspectj.lang.JoinPoint; |
| | | import org.aspectj.lang.annotation.*; |
| | | import org.aspectj.lang.reflect.MethodSignature; |
| | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.lang.reflect.Method; |
| | | import java.util.Collections; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | |
| | |
| | | * 保存操作记录 |
| | | */ |
| | | private void saveLog(JoinPoint joinPoint, Object result, Exception e) { |
| | | // 记录模块名、操作功能、请求方法、请求参数、返回结果 |
| | | MethodSignature signature = (MethodSignature) joinPoint.getSignature(); |
| | | Method method = signature.getMethod(); |
| | | if (null == method) { |
| | | return; |
| | | } |
| | | OperationLog ol = method.getAnnotation(OperationLog.class); |
| | | if (null == ol) { |
| | | return; |
| | | } |
| | | String desc = getDescription(method, ol); |
| | | if (Cools.isEmpty(desc)) { |
| | | return; |
| | | } |
| | | OperationRecord record = new OperationRecord(); |
| | | Long endTime = startTime.get(); |
| | | record.setCreateTime(new Date()); |
| | | // 记录操作耗时 |
| | | if (endTime != null) { |
| | | record.setSpendTime((int) (System.currentTimeMillis() - endTime)); |
| | |
| | | User user = getLoginUser(); |
| | | if (user != null) { |
| | | record.setUserId(user.getId()); |
| | | record.setHostId(user.getHostId()); |
| | | // record.setHostId(user.getHostId()); |
| | | } |
| | | // 记录请求地址、请求方式、ip |
| | | ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); |
| | |
| | | // 记录异常信息 |
| | | if (e != null) { |
| | | record.setResult(0); |
| | | record.setErr(Utils.sub(e.toString(), MAX_LENGTH)); |
| | | record.setErr(CommonUtils.sub(e.toString(), MAX_LENGTH)); |
| | | } else { |
| | | record.setResult(1); |
| | | } |
| | | // 记录模块名、操作功能、请求方法、请求参数、返回结果 |
| | | MethodSignature signature = (MethodSignature) joinPoint.getSignature(); |
| | | Method method = signature.getMethod(); |
| | | if (method != null) { |
| | | OperationLog ol = method.getAnnotation(OperationLog.class); |
| | | if (ol != null) { |
| | | // 记录操作功能 |
| | | record.setNamespace(getDescription(method, ol)); |
| | | // 记录备注 |
| | | if (!Cools.isEmpty(ol.comments())) { |
| | | record.setMemo(ol.comments()); |
| | | } |
| | | // 记录请求参数 |
| | | if (ol.param() && request != null) { |
| | | record.setRequest(Utils.sub(getParams(joinPoint, request), MAX_LENGTH)); |
| | | } |
| | | // 记录请求结果 |
| | | if (ol.result() && result != null) { |
| | | record.setResponse(Utils.sub(JSON.toJSONString(result), MAX_LENGTH)); |
| | | } |
| | | } |
| | | // 记录操作功能 |
| | | record.setNamespace(desc); |
| | | // 记录备注 |
| | | if (!Cools.isEmpty(ol.comments())) { |
| | | record.setMemo(ol.comments()); |
| | | } |
| | | operationRecordService.save(record); |
| | | // 记录请求参数 |
| | | if (ol.param() && request != null) { |
| | | record.setRequest(CommonUtils.sub(getParams(joinPoint, request), MAX_LENGTH)); |
| | | } |
| | | // 记录请求结果 |
| | | if (ol.result() && result != null) { |
| | | record.setResponse(CommonUtils.sub(JSON.toJSONString(result), MAX_LENGTH)); |
| | | } |
| | | operationRecordService.saveAsync(record); |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | Map<String, String[]> map = Collections.unmodifiableMap(request.getParameterMap()); |
| | | for (Map.Entry<String, String[]> entry : map.entrySet()) { |
| | | paramsMap.put(entry.getKey(), Utils.join(entry.getValue(), ",")); |
| | | paramsMap.put(entry.getKey(), CommonUtils.join(entry.getValue(), ",")); |
| | | } |
| | | |
| | | if (paramsMap.keySet().size() > 0) { |