package com.moral.api.util; import com.moral.api.entity.ManageAccount; import com.moral.api.entity.ManageLog; import com.moral.api.mapper.ManageLogMapper; import com.moral.api.pojo.redisBean.AccountInfoDTO; import com.moral.api.service.UnitConversionService; import com.moral.constant.Constants; import com.moral.util.TokenUtils; import com.moral.util.WebUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; import java.util.Scanner; /** * @ClassName LogUtils * @Description TODO * @Author 陈凯裕 * @Date 2021/4/2 8:45 * @Version TODO **/ @Component public class LogUtils { private static ManageLogMapper manageLogMapper; @Autowired public void setManageLogMapper(ManageLogMapper manageLogMapper){LogUtils.manageLogMapper = manageLogMapper;} public static void saveOperationForManage(String content,String type){ HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); saveOperationForManage(request,content,type); } /** * @Description: 通用插入日志 * @Param: [request, content] * @return: void * @Author: 陈凯裕 * @Date: 2021/4/8 */ public static void saveOperationForManage(HttpServletRequest request, String content,String type) { String token = request.getHeader("token"); AccountInfoDTO accountInfoDTO = (AccountInfoDTO) TokenUtils.getUserInfoByToken(token); ManageAccount manageAccount = accountInfoDTO.getAccount(); Integer id = manageAccount.getId(); String userName = manageAccount.getUserName(); String account = manageAccount.getAccount(); String ip = WebUtils.getIpAddr(request); ManageLog log = new ManageLog(); log.setType(type); log.setUserName(userName); log.setAccountId(id); log.setIp(ip); log.setAccount(account); log.setContent(content); manageLogMapper.insert(log); } /** * @Description: 插入登陆操作日志 * @Param: [request, content, id, userName] * @return: void * @Author: 陈凯裕 * @Date: 2021/4/8 */ public static void saveLoginForManage(HttpServletRequest request,String content,ManageAccount account,String userName){ ManageLog log = new ManageLog(); String ip = WebUtils.getIpAddr(request); log.setAccountId(account.getId()); log.setAccount(account.getAccount()); log.setUserName(userName); log.setIp(ip); log.setContent(content); log.setType(Constants.LOGIN_OPERTATE_TYPE); manageLogMapper.insert(log); } /** * @Description: 存储token解析失败的日志 * @Param: [request, content] * @return: void * @Author: 陈凯裕 * @Date: 2021/10/8 */ public static void saveFailedRequestForManage(HttpServletRequest request,String content){ ManageLog log = new ManageLog(); String ip = WebUtils.getIpAddr(request); log.setAccountId(0); log.setAccount("null"); log.setUserName("null"); log.setIp(ip); log.setContent(content); log.setType(Constants.LOGIN_OPERTATE_TYPE); manageLogMapper.insert(log); } }