diff --git a/mall-admin/src/main/java/com/macro/mall/service/impl/UmsAdminServiceImpl.java b/mall-admin/src/main/java/com/macro/mall/service/impl/UmsAdminServiceImpl.java index aa40280..2dfe8f5 100644 --- a/mall-admin/src/main/java/com/macro/mall/service/impl/UmsAdminServiceImpl.java +++ b/mall-admin/src/main/java/com/macro/mall/service/impl/UmsAdminServiceImpl.java @@ -4,6 +4,7 @@ import com.github.pagehelper.PageHelper; import com.macro.mall.dao.UmsAdminPermissionRelationDao; import com.macro.mall.dao.UmsAdminRoleRelationDao; import com.macro.mall.dto.UmsAdminParam; +import com.macro.mall.mapper.UmsAdminLoginLogMapper; import com.macro.mall.mapper.UmsAdminMapper; import com.macro.mall.mapper.UmsAdminPermissionRelationMapper; import com.macro.mall.mapper.UmsAdminRoleRelationMapper; @@ -26,7 +27,10 @@ import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; +import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -59,6 +63,8 @@ public class UmsAdminServiceImpl implements UmsAdminService { private UmsAdminPermissionRelationMapper adminPermissionRelationMapper; @Autowired private UmsAdminPermissionRelationDao adminPermissionRelationDao; + @Autowired + private UmsAdminLoginLogMapper loginLogMapper; @Override public UmsAdmin getAdminByUsername(String username) { @@ -102,12 +108,28 @@ public class UmsAdminServiceImpl implements UmsAdminService { UserDetails userDetails = userDetailsService.loadUserByUsername(username); token = jwtTokenUtil.generateToken(userDetails); updateLoginTimeByUsername(username); + insertLoginLog(username); } catch (AuthenticationException e) { LOGGER.warn("登录异常:{}", e.getMessage()); } return token; } + /** + * 添加登录记录 + * @param username 用户名 + */ + private void insertLoginLog(String username) { + UmsAdmin admin = getAdminByUsername(username); + UmsAdminLoginLog loginLog = new UmsAdminLoginLog(); + loginLog.setAdminId(admin.getId()); + loginLog.setCreateTime(new Date()); + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + HttpServletRequest request = attributes.getRequest(); + loginLog.setIp(request.getRemoteAddr()); + loginLogMapper.insert(loginLog); + } + /** * 根据用户名修改登录时间 */