init
This commit is contained in:
@@ -1,12 +1,18 @@
|
||||
package com.ruoyi.cai.controller.admin;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.net.Ipv4Util;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.cai.domain.UserForbid;
|
||||
import com.ruoyi.cai.dto.admin.UserForbidDTO;
|
||||
import com.ruoyi.cai.dto.admin.query.forbid.UserForbidIpReq;
|
||||
import com.ruoyi.cai.dto.admin.vo.UserForbidAdminVo;
|
||||
import com.ruoyi.cai.enums.ForbidTimeEnum;
|
||||
import com.ruoyi.cai.enums.ForbidTypeEnum;
|
||||
import com.ruoyi.cai.manager.UserForbidManager;
|
||||
import com.ruoyi.cai.service.UserForbidService;
|
||||
import com.ruoyi.cai.util.IpAddressUtil;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.annotation.RepeatSubmit;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
@@ -16,6 +22,7 @@ import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@@ -63,6 +70,28 @@ public class UserForbidController extends BaseController {
|
||||
return R.ok(userForbidService.getById(id));
|
||||
}
|
||||
|
||||
@Log(title = "封禁IP", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@SaCheckPermission("cai:userForbid:forbidIp")
|
||||
@PostMapping("/forbid/ip")
|
||||
public R<Void> forbid(@RequestBody UserForbidIpReq ip) {
|
||||
boolean isIP = IpAddressUtil.isIp(ip.getIp());
|
||||
if(!isIP){
|
||||
return R.fail("请输入正常的IP地址");
|
||||
}
|
||||
boolean innerIP = Ipv4Util.isInnerIP(ip.getIp());
|
||||
if(innerIP){
|
||||
return R.fail("不允许封禁内网IP地址");
|
||||
}
|
||||
UserForbidDTO dto = new UserForbidDTO();
|
||||
dto.setForbidTime(ip.getForbidTime());
|
||||
dto.setForbidType(ForbidTypeEnum.IP.getCode());
|
||||
dto.setMember(ip.getIp());
|
||||
dto.setRemark(ip.getRemark());
|
||||
userForbidManager.forbid(dto);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
@Log(title = "解封", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@SaCheckPermission("cai:userForbid:unForbid")
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.ruoyi.cai.dto.admin.query.forbid;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class UserForbidIpReq {
|
||||
private String ip;
|
||||
private Integer forbidTime;
|
||||
private String remark;
|
||||
}
|
||||
@@ -57,12 +57,14 @@ public class UserForbidManager {
|
||||
// 封设备
|
||||
}else if(integer == 3){ // 封IP
|
||||
UserInfo userInfo = userInfoService.getByUserId(user.getId());
|
||||
UserForbidDTO dto = new UserForbidDTO();
|
||||
dto.setForbidTime(userForbidReq.getForbidTime());
|
||||
dto.setForbidType(ForbidTypeEnum.IP.getCode());
|
||||
dto.setMember(userInfo.getLastLoginIp());
|
||||
dto.setRemark(userForbidReq.getReason());
|
||||
this.forbid(dto);
|
||||
if(userInfo != null && StringUtils.isNotEmpty(userInfo.getLastLoginIp())){
|
||||
UserForbidDTO dto = new UserForbidDTO();
|
||||
dto.setForbidTime(userForbidReq.getForbidTime());
|
||||
dto.setForbidType(ForbidTypeEnum.IP.getCode());
|
||||
dto.setMember(userInfo.getLastLoginIp());
|
||||
dto.setRemark(userForbidReq.getReason());
|
||||
this.forbid(dto);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.ruoyi.cai.domain.User;
|
||||
import com.ruoyi.cai.domain.UserForbid;
|
||||
import com.ruoyi.cai.domain.UserForbidLog;
|
||||
import com.ruoyi.cai.dto.admin.query.UserForbidReq;
|
||||
import com.ruoyi.cai.dto.admin.query.forbid.UserForbidIpReq;
|
||||
import com.ruoyi.cai.dto.admin.vo.UserForbidAdminVo;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
|
||||
|
||||
@@ -8,6 +8,8 @@ import com.ruoyi.cai.domain.Anchor;
|
||||
import com.ruoyi.cai.domain.User;
|
||||
import com.ruoyi.cai.domain.UserForbid;
|
||||
import com.ruoyi.cai.domain.UserForbidLog;
|
||||
import com.ruoyi.cai.dto.admin.UserForbidDTO;
|
||||
import com.ruoyi.cai.dto.admin.query.forbid.UserForbidIpReq;
|
||||
import com.ruoyi.cai.dto.admin.vo.UserForbidAdminVo;
|
||||
import com.ruoyi.cai.enums.ForbidTimeEnum;
|
||||
import com.ruoyi.cai.enums.ForbidTypeEnum;
|
||||
@@ -19,6 +21,7 @@ import com.ruoyi.cai.service.AnchorService;
|
||||
import com.ruoyi.cai.service.UserForbidService;
|
||||
import com.ruoyi.cai.service.UserService;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -97,6 +100,8 @@ public class UserForbidServiceImpl extends ServiceImpl<UserForbidMapper, UserFor
|
||||
return baseMapper.pageAdmin(pageQuery.build(),bo);
|
||||
}
|
||||
|
||||
|
||||
|
||||
private LocalDateTime getEndTime(LocalDateTime beginTime, ForbidTimeEnum time){
|
||||
switch (time){
|
||||
case DAY_1:
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.ruoyi.cai.util;
|
||||
|
||||
|
||||
import cn.hutool.core.util.ReUtil;
|
||||
|
||||
public class IpAddressUtil {
|
||||
|
||||
public static boolean isIp(String ip){
|
||||
if(ip == null || ip.length() < 7 || ip.length() > 15){
|
||||
return false;
|
||||
}
|
||||
return ReUtil.isMatch("([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}",ip);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user