|
@@ -24,6 +24,7 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.time.LocalDate;
|
|
|
+import java.time.LocalDateTime;
|
|
|
|
|
|
@Slf4j
|
|
|
@Service
|
|
@@ -63,24 +64,28 @@ implements IGameOceanengineAppCallbackService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public GameOceanengineAppCallback getUserCallback(Long gameId, String imei, String oaid, String android, String idfa, String caid) {
|
|
|
+ public GameOceanengineAppCallback getUserCallback(Long gameId, String oaid, String mac, String idfa, String caid, String ip, LocalDateTime regTime) {
|
|
|
LambdaQueryWrapper<GameOceanengineAppCallback> qw = new LambdaQueryWrapper<GameOceanengineAppCallback>()
|
|
|
+ .lt(GameOceanengineAppCallback::getTs, DateUtil.localDateTimeToMilli(regTime))
|
|
|
.eq(GameOceanengineAppCallback::getGameId, gameId)
|
|
|
.orderByDesc(GameOceanengineAppCallback::getTs)
|
|
|
.last("limit 1");
|
|
|
- if (StringUtils.isNoneBlank(imei) || StringUtils.isNoneBlank(android) || StringUtils.isNoneBlank(oaid)) {
|
|
|
- qw.and(and -> {
|
|
|
- and.eq(StringUtils.isNoneBlank(imei), GameOceanengineAppCallback::getImei, StringUtils.isBlank(imei) ? null : Md5Util.encrypt32(imei).toLowerCase())
|
|
|
- .or().eq(StringUtils.isNoneBlank(android), GameOceanengineAppCallback::getAndroidid, StringUtils.isBlank(android) ? null : Md5Util.encrypt32(android).toLowerCase())
|
|
|
- .or().eq(StringUtils.isNoneBlank(oaid), GameOceanengineAppCallback::getOaid, oaid)
|
|
|
+
|
|
|
+ qw.and(and -> {
|
|
|
+ if(StringUtils.isNoneBlank(oaid)) {
|
|
|
+ and.eq(StringUtils.isNoneBlank(oaid), GameOceanengineAppCallback::getOaid, oaid)
|
|
|
.or().eq(StringUtils.isNoneBlank(oaid), GameOceanengineAppCallback::getOaidMd5, StringUtils.isBlank(oaid) ? null : Md5Util.encrypt32(oaid).toLowerCase());
|
|
|
- });
|
|
|
- } else if (StringUtils.isNoneBlank(idfa)) {
|
|
|
- qw.and(and -> {
|
|
|
+ }
|
|
|
+ if (StringUtils.isNoneBlank(idfa)) {
|
|
|
and.eq(GameOceanengineAppCallback::getIdfaMd5, StringUtils.isBlank(idfa) ? null : Md5Util.encrypt32(idfa).toLowerCase())
|
|
|
.or().eq(GameOceanengineAppCallback::getIdfa, idfa);
|
|
|
- });
|
|
|
- }
|
|
|
+ }
|
|
|
+ and.or().eq(StringUtils.isNoneBlank(mac), GameOceanengineAppCallback::getMac, StringUtils.isBlank(oaid) ? null : Md5Util.encrypt32(mac.replaceAll(":","").toUpperCase()).toLowerCase())
|
|
|
+ .or().and(StringUtils.isNoneBlank(ip), tmp -> {
|
|
|
+ tmp.ge(GameOceanengineAppCallback::getTs, DateUtil.localDateTimeToMilli(regTime.plusDays(2)))
|
|
|
+ .eq(GameOceanengineAppCallback::getIp, ip);
|
|
|
+ });
|
|
|
+ });
|
|
|
return getOne(qw);
|
|
|
}
|
|
|
}
|