H5登录记录

pull/1/head
czc 2 years ago
parent aada1a3649
commit 466a4c6abf

@ -11,7 +11,7 @@ ruoyi:
# 文件路径 示例( Windows配置D:/ruoyi/uploadPathLinux配置 /home/ruoyi/uploadPath
profile: C:/ruoyi/uploadPath
# 获取ip地址开关
addressEnabled: false
addressEnabled: true
# 验证码类型 math 数组计算 char 字符验证
captchaType: math
# 前端请求的 跟踪 header name

@ -44,7 +44,8 @@ public class AddressUtils
JSONObject obj = JSONObject.parseObject(rspStr);
String region = obj.getString("pro");
String city = obj.getString("city");
return String.format("%s %s", region, city);
String operator = ((String)obj.get("addr")).split(" ")[1];
return String.format("%s|%s|%s", region, city, operator);
}
catch (Exception e)
{
@ -53,4 +54,8 @@ public class AddressUtils
}
return address;
}
public static void main(String[] args) {
System.out.println("地址:" + getRealAddressByIP("14.125.8.236"));
}
}

@ -8,17 +8,25 @@ import com.cyl.h5.service.H5MemberService;
import com.cyl.manager.ums.pojo.vo.MemberVO;
import com.cyl.wechat.WechatAuthService;
import com.cyl.wechat.response.WechatUserAuth;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.model.LoginMember;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.framework.web.service.TokenService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
@RestController
@RequestMapping("/h5")
public class H5MemberController {
@Autowired
private H5MemberService service;
@Autowired
private TokenService tokenService;
@ApiOperation("会员注册")
@ -56,4 +64,14 @@ public class H5MemberController {
public void setWechatInfo(@RequestBody String data){
service.setWechatInfo(data);
}
@ApiOperation("新增会员登录记录")
@Log(title = "会员登录记录", businessType = BusinessType.INSERT)
@GetMapping("/record/login")
public void add(HttpServletRequest request) {
LoginMember loginMember = tokenService.getLoginMember(request);
if (loginMember != null){
service.insert(loginMember.getMemberId());
}
}
}

@ -13,21 +13,24 @@ import com.cyl.h5.pojo.response.RegisterResponse;
import com.cyl.h5.pojo.response.ValidatePhoneResponse;
import com.cyl.h5.pojo.response.H5LoginResponse;
import com.cyl.manager.ums.domain.Member;
import com.cyl.manager.ums.domain.MemberLogininfor;
import com.cyl.manager.ums.domain.MemberWechat;
import com.cyl.manager.ums.mapper.MemberLogininforMapper;
import com.cyl.manager.ums.mapper.MemberMapper;
import com.cyl.manager.ums.mapper.MemberWechatMapper;
import com.cyl.manager.ums.pojo.vo.MemberVO;
import com.cyl.manager.ums.service.MemberLogininforService;
import com.cyl.wechat.WechatAuthService;
import com.cyl.wechat.response.WechatUserAuth;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.model.LoginMember;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.utils.AesCryptoUtils;
import com.ruoyi.common.utils.PhoneUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.*;
import com.ruoyi.common.utils.ip.AddressUtils;
import com.ruoyi.common.utils.ip.IpUtils;
import com.ruoyi.framework.config.LocalDataUtil;
import com.ruoyi.framework.web.service.TokenService;
import eu.bitwalker.useragentutils.UserAgent;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -61,6 +64,13 @@ public class H5MemberService {
@Autowired
private MemberWechatMapper memberWechatMapper;
@Autowired
private MemberLogininforService memberLogininforService;
@Autowired
private MemberLogininforMapper memberLogininforMapper;
/**
*
* @param request
@ -192,6 +202,7 @@ public class H5MemberService {
//校验会员状态
validateMemberStatus(member);
}
return getLoginResponse(member.getId());
}
@ -232,6 +243,8 @@ public class H5MemberService {
LoginMember loginMember = new LoginMember();
loginMember.setMemberId(memberId);
String token = tokenService.createMemberToken(loginMember);
//record登录
this.insert(memberId);
H5LoginResponse response = new H5LoginResponse();
response.setToken(token);
return response;
@ -272,4 +285,24 @@ public class H5MemberService {
wrapper.set("update_by", member.getId());
memberWechatMapper.update(null, wrapper);
}
/**
*
*
* @param memberId id
* @return
*/
public void insert(Long memberId) {
Member member = memberMapper.selectById(memberId);
UserAgent userAgent = UserAgent.parseUserAgentString(ServletUtils.getRequest().getHeader("User-Agent"));
MemberLogininfor memberLogininfor = new MemberLogininfor();
memberLogininfor.setMemberId(memberId);
memberLogininfor.setPhone(member.getPhoneHidden());
memberLogininfor.setOs(userAgent.getOperatingSystem().getName());
memberLogininfor.setIpaddr(IpUtils.getIpAddr(ServletUtils.getRequest()));
memberLogininfor.setBrowser(userAgent.getBrowser().getName());
memberLogininfor.setLoginLocation(AddressUtils.getRealAddressByIP(memberLogininfor.getIpaddr()));
memberLogininfor.setLoginTime(LocalDateTime.now());
memberLogininforMapper.insert(memberLogininfor);
}
}

Loading…
Cancel
Save