src/main/java/com/xcong/excoin/common/system/controller/LoginController.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/com/xcong/excoin/modules/member/dao/MemberDeviceInfoDao.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/com/xcong/excoin/modules/member/entity/MemberDeviceInfo.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/com/xcong/excoin/modules/member/service/MemberDeviceInfoService.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberDeviceInfoServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/com/xcong/excoin/utils/HttpUtils.java | ●●●●● patch | view | raw | blame | history | |
src/main/resources/mapper/member/MemberDeviceInfoDao.xml | ●●●●● patch | view | raw | blame | history |
src/main/java/com/xcong/excoin/common/system/controller/LoginController.java
@@ -18,7 +18,10 @@ import com.xcong.excoin.common.system.dto.RegisterDto; import com.xcong.excoin.configurations.properties.ApplicationProperties; import com.xcong.excoin.configurations.properties.SecurityProperties; import com.xcong.excoin.modules.member.entity.MemberDeviceInfo; import com.xcong.excoin.modules.member.service.MemberDeviceInfoService; import com.xcong.excoin.modules.member.service.MemberService; import com.xcong.excoin.utils.HttpUtils; import com.xcong.excoin.utils.RedisUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -62,6 +65,9 @@ @Resource private RedisUtils redisUtils; @Resource private MemberDeviceInfoService memberDeviceInfoService; @ApiOperation(value = "登陆接口", notes = "登陆接口") @PostMapping("/login") public Result login(@RequestBody @Validated LoginDto loginDto, HttpServletRequest request) { @@ -103,6 +109,21 @@ authInfo.put("token", token); authInfo.put("user", loginUserBean); } MemberDeviceInfo deviceInfo = memberDeviceInfoService.getByMemberId(loginUserBean.getMemberEntity().getId()); String ip = HttpUtils.getRealIp(request); String userAgent = HttpUtils.getUserAgent(request); if (deviceInfo == null) { deviceInfo = new MemberDeviceInfo(); deviceInfo.setIp(ip); deviceInfo.setUserAgent(userAgent); deviceInfo.setMemberId(loginUserBean.getMemberEntity().getId()); memberDeviceInfoService.save(deviceInfo); } else { deviceInfo.setIp(ip); deviceInfo.setUserAgent(userAgent); memberDeviceInfoService.updateById(deviceInfo); } return Result.ok("success", authInfo); } src/main/java/com/xcong/excoin/modules/member/dao/MemberDeviceInfoDao.java
New file @@ -0,0 +1,10 @@ package com.xcong.excoin.modules.member.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.xcong.excoin.modules.member.entity.MemberDeviceInfo; import org.apache.ibatis.annotations.Param; public interface MemberDeviceInfoDao extends BaseMapper<MemberDeviceInfo> { public MemberDeviceInfo selectByMemberId(@Param("memberId") Long memberId); } src/main/java/com/xcong/excoin/modules/member/entity/MemberDeviceInfo.java
New file @@ -0,0 +1,17 @@ package com.xcong.excoin.modules.member.entity; import com.baomidou.mybatisplus.annotation.TableName; import com.xcong.excoin.common.system.base.BaseEntity; import lombok.Data; /** * @author wzy * @date 2020-09-24 **/ @Data @TableName("member_device_info") public class MemberDeviceInfo extends BaseEntity { private Long memberId; private String ip; private String userAgent; } src/main/java/com/xcong/excoin/modules/member/service/MemberDeviceInfoService.java
New file @@ -0,0 +1,9 @@ package com.xcong.excoin.modules.member.service; import com.baomidou.mybatisplus.extension.service.IService; import com.xcong.excoin.modules.member.entity.MemberDeviceInfo; public interface MemberDeviceInfoService extends IService<MemberDeviceInfo> { MemberDeviceInfo getByMemberId(Long memberId); } src/main/java/com/xcong/excoin/modules/member/service/impl/MemberDeviceInfoServiceImpl.java
New file @@ -0,0 +1,18 @@ package com.xcong.excoin.modules.member.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xcong.excoin.modules.member.dao.MemberDeviceInfoDao; import com.xcong.excoin.modules.member.entity.MemberDeviceInfo; import com.xcong.excoin.modules.member.service.MemberDeviceInfoService; /** * @author wzy * @date 2020-09-24 **/ public class MemberDeviceInfoServiceImpl extends ServiceImpl<MemberDeviceInfoDao, MemberDeviceInfo> implements MemberDeviceInfoService { @Override public MemberDeviceInfo getByMemberId(Long memberId) { return this.baseMapper.selectByMemberId(memberId); } } src/main/java/com/xcong/excoin/utils/HttpUtils.java
New file @@ -0,0 +1,28 @@ package com.xcong.excoin.utils; import javax.servlet.http.HttpServletRequest; /** * @author wzy * @date 2020-09-24 **/ public class HttpUtils { public static final String FORWARDED ="x-forwarded-for"; public static String getRealIp(HttpServletRequest request) { String ip = null; if (request.getHeader(FORWARDED) == null) { ip = request.getRemoteHost(); } else { ip = request.getHeader(FORWARDED); } return ip; } public static String getUserAgent(HttpServletRequest request) { return request.getHeader("User-Agent"); } } src/main/resources/mapper/member/MemberDeviceInfoDao.xml
New file @@ -0,0 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.xcong.excoin.modules.member.dao.MemberDeviceInfoDao"> <select id="selectByMemberId" resultType="com.xcong.excoin.modules.member.entity.MemberDeviceInfo"> select * from member_device_info where member_id=#{memberId} </select> </mapper>