|
@@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.util.IdUtil;
|
|
import cn.hutool.core.util.IdUtil;
|
|
|
import cn.hutool.core.util.RandomUtil;
|
|
import cn.hutool.core.util.RandomUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.ytpm.agent.enums.AdRecordEnum;
|
|
import com.ytpm.agent.enums.AdRecordEnum;
|
|
|
import com.ytpm.agent.enums.UserStatusEnum;
|
|
import com.ytpm.agent.enums.UserStatusEnum;
|
|
|
import com.ytpm.app.enums.LoginType;
|
|
import com.ytpm.app.enums.LoginType;
|
|
@@ -95,7 +96,20 @@ public class VisitorLoginServiceImpl extends AbstractLoginService {
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
protected void validateParams(LoginParam loginParam, HttpServletRequest request) {
|
|
protected void validateParams(LoginParam loginParam, HttpServletRequest request) {
|
|
|
|
|
+ // deviceId空值处理
|
|
|
|
|
+ if (StrUtil.isEmpty(loginParam.getDeviceId())) {
|
|
|
|
|
+ log.warn("[visitor login validate]deviceId is empty!");
|
|
|
|
|
+ // 尝试从phoneJson中获取
|
|
|
|
|
+ if (StrUtil.isNotEmpty(loginParam.getPhoneJson())) {
|
|
|
|
|
+ JSONObject phoneJson = JSONObject.parseObject(loginParam.getPhoneJson());
|
|
|
|
|
+ if (phoneJson.get("device_basic") != null) {
|
|
|
|
|
+ String deviveId = phoneJson.getJSONObject("device_basic").getString("device_id");
|
|
|
|
|
+ loginParam.setDeviceId(deviveId);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
if (StrUtil.isNotEmpty(loginParam.getRequestId())) {
|
|
if (StrUtil.isNotEmpty(loginParam.getRequestId())) {
|
|
|
|
|
+ log.info("[visitor login validate]requestId check...");
|
|
|
// 游客登陆幂等校验
|
|
// 游客登陆幂等校验
|
|
|
String redisKey = StrUtil.format("visitor:requestId:{}:{}:{}", loginParam.getDitchId(),
|
|
String redisKey = StrUtil.format("visitor:requestId:{}:{}:{}", loginParam.getDitchId(),
|
|
|
loginParam.getAppType(), loginParam.getDeviceId());
|
|
loginParam.getAppType(), loginParam.getDeviceId());
|