This commit is contained in:
dute7liang
2024-01-28 17:03:22 +08:00
parent 76cfa50e5e
commit d8b3c52bd9
6 changed files with 67 additions and 6 deletions

View File

@@ -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")