放行微信抓取岗位保存,并且做限流处理
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.Company;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.redis.RedisCache;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.ruoyi.common.utils.SM4Utils;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.common.utils.bean.BeanUtils;
|
||||
import com.ruoyi.common.utils.ip.IpUtils;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
@@ -43,6 +45,7 @@ import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -71,6 +74,8 @@ public class CmsJobController extends BaseController
|
||||
private IJobApplyService iJobApplyService;
|
||||
@Autowired
|
||||
private IAppReviewJobService iAppReviewJobService;
|
||||
@Autowired
|
||||
private RedisCache redisCache;
|
||||
/**
|
||||
* 查询岗位列表
|
||||
*/
|
||||
@@ -400,7 +405,10 @@ public class CmsJobController extends BaseController
|
||||
@PostMapping("/wechat")
|
||||
@ApiOperation("微信抓取功能调用的新增")
|
||||
@Anonymous
|
||||
public AjaxResult wechatInsert(@RequestBody Job job) {
|
||||
public AjaxResult wechatInsert(@RequestBody Job job,HttpServletRequest request) {
|
||||
if (!checkLimitNoLogin(request)) {
|
||||
return AjaxResult.error("操作过于频繁,一分钟内提交次数已达上限,请稍后再试");
|
||||
}
|
||||
// 不发布
|
||||
job.setIsPublish(0);
|
||||
if (job.getJobContactList() == null) {
|
||||
@@ -418,6 +426,23 @@ public class CmsJobController extends BaseController
|
||||
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