ip隔离-判断手机号是否在白名单
This commit is contained in:
@@ -48,7 +48,7 @@ public class IpRegionService {
|
||||
throw new ServiceException(BusiStatus.IP_REGION_HAD_LIMIT);
|
||||
}
|
||||
|
||||
if (whiteService.isInWhileList(account.getUid(), account.getPhone()) || envComponent.getDevEnv()){
|
||||
if (whiteService.isInWhileList(account) || envComponent.getDevEnv()){
|
||||
return getNextTimestampInterval();
|
||||
}
|
||||
|
||||
|
@@ -4,6 +4,7 @@ import com.accompany.business.model.ip.IpRegionWhite;
|
||||
import com.accompany.business.mybatismapper.ip.IpRegionWhiteMapper;
|
||||
import com.accompany.common.utils.CommonUtil;
|
||||
import com.accompany.core.base.SpringContextHolder;
|
||||
import com.accompany.core.model.Account;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
@@ -15,20 +16,24 @@ import java.util.Date;
|
||||
@Service
|
||||
public class IpRegionWhiteService extends ServiceImpl<IpRegionWhiteMapper, IpRegionWhite> {
|
||||
|
||||
public boolean isInWhileList(Long uid, String phone) {
|
||||
Long whiteId = CommonUtil.checkValidPhone(phone)?
|
||||
public boolean isInWhileList(Account account) {
|
||||
Long uid = account.getUid();
|
||||
String phoneAreaCode = account.getPhoneAreaCode();
|
||||
String phone = account.getPhone();
|
||||
Long whiteId = CommonUtil.checkPhoneFormat(phoneAreaCode, phone)?
|
||||
baseMapper.getIpRegionWhileListByUidOrPhone(uid, phone):
|
||||
baseMapper.getIpRegionWhileListByUid(uid);
|
||||
if (null == whiteId){
|
||||
return false;
|
||||
}
|
||||
SpringContextHolder.getBean(IpRegionWhiteService.class).updateLastCheckTime(whiteId);
|
||||
SpringContextHolder.getBean(IpRegionWhiteService.class).updateLastCheckTime(whiteId, uid);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Async
|
||||
public void updateLastCheckTime(Long id) {
|
||||
public void updateLastCheckTime(Long id, Long uid) {
|
||||
lambdaUpdate()
|
||||
.set(IpRegionWhite::getUid, uid)
|
||||
.set(IpRegionWhite::getLastCheckTime, new Date())
|
||||
.eq(IpRegionWhite::getId, id)
|
||||
.update();
|
||||
|
Reference in New Issue
Block a user