放行微信抓取岗位保存,并且做限流处理
This commit is contained in:
@@ -20,12 +20,14 @@ import com.ruoyi.common.core.domain.AjaxResult;
|
|||||||
import com.ruoyi.common.core.domain.entity.AppUser;
|
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||||
import com.ruoyi.common.core.domain.entity.Company;
|
import com.ruoyi.common.core.domain.entity.Company;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
|
import com.ruoyi.common.core.redis.RedisCache;
|
||||||
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.common.enums.BusinessType;
|
||||||
import com.ruoyi.common.utils.DateUtils;
|
import com.ruoyi.common.utils.DateUtils;
|
||||||
import com.ruoyi.common.utils.SM4Utils;
|
import com.ruoyi.common.utils.SM4Utils;
|
||||||
import com.ruoyi.common.utils.SecurityUtils;
|
import com.ruoyi.common.utils.SecurityUtils;
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
import com.ruoyi.common.utils.bean.BeanUtils;
|
import com.ruoyi.common.utils.bean.BeanUtils;
|
||||||
|
import com.ruoyi.common.utils.ip.IpUtils;
|
||||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
@@ -43,6 +45,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -71,6 +74,8 @@ public class CmsJobController extends BaseController
|
|||||||
private IJobApplyService iJobApplyService;
|
private IJobApplyService iJobApplyService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IAppReviewJobService iAppReviewJobService;
|
private IAppReviewJobService iAppReviewJobService;
|
||||||
|
@Autowired
|
||||||
|
private RedisCache redisCache;
|
||||||
/**
|
/**
|
||||||
* 查询岗位列表
|
* 查询岗位列表
|
||||||
*/
|
*/
|
||||||
@@ -400,7 +405,10 @@ public class CmsJobController extends BaseController
|
|||||||
@PostMapping("/wechat")
|
@PostMapping("/wechat")
|
||||||
@ApiOperation("微信抓取功能调用的新增")
|
@ApiOperation("微信抓取功能调用的新增")
|
||||||
@Anonymous
|
@Anonymous
|
||||||
public AjaxResult wechatInsert(@RequestBody Job job) {
|
public AjaxResult wechatInsert(@RequestBody Job job,HttpServletRequest request) {
|
||||||
|
if (!checkLimitNoLogin(request)) {
|
||||||
|
return AjaxResult.error("操作过于频繁,一分钟内提交次数已达上限,请稍后再试");
|
||||||
|
}
|
||||||
// 不发布
|
// 不发布
|
||||||
job.setIsPublish(0);
|
job.setIsPublish(0);
|
||||||
if (job.getJobContactList() == null) {
|
if (job.getJobContactList() == null) {
|
||||||
@@ -418,6 +426,23 @@ public class CmsJobController extends BaseController
|
|||||||
return AjaxResult.success("此岗位已存在!");
|
return AjaxResult.success("此岗位已存在!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 限制请求最大次数100
|
||||||
|
* @param request
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public boolean checkLimitNoLogin(HttpServletRequest request) {
|
||||||
|
String ip = IpUtils.getIpAddr(request);
|
||||||
|
String ipKey = "limit:wechat:ip:" + ip;
|
||||||
|
Long ipCnt = redisCache.increment(ipKey);
|
||||||
|
if (ipCnt == null || ipCnt > 100) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
redisCache.expire(ipKey, 60, TimeUnit.SECONDS);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通用上传请求(单个)
|
* 通用上传请求(单个)
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user