ip隔离-判断手机号是否在白名单

This commit is contained in:
khalil
2023-11-22 18:42:08 +08:00
parent 7e29da653a
commit e85ad6d1ff
2 changed files with 10 additions and 5 deletions

View File

@@ -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();
}

View File

@@ -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();