diff --git a/src/main/java/cn/celess/blog/controller/LinksController.java b/src/main/java/cn/celess/blog/controller/LinksController.java index 1293deb..fb5b599 100644 --- a/src/main/java/cn/celess/blog/controller/LinksController.java +++ b/src/main/java/cn/celess/blog/controller/LinksController.java @@ -73,4 +73,9 @@ public class LinksController { public Response apply(@RequestBody() LinkApplyReq linkApplyReq) { return Response.success(partnerSiteService.apply(linkApplyReq)); } + + @PostMapping("/reapply") + public Response reapply(@RequestParam("key") String key) { + return Response.success(partnerSiteService.reapply(key)); + } } diff --git a/src/main/java/cn/celess/blog/enmu/ResponseEnum.java b/src/main/java/cn/celess/blog/enmu/ResponseEnum.java index 6d1d1d8..6c98fa5 100644 --- a/src/main/java/cn/celess/blog/enmu/ResponseEnum.java +++ b/src/main/java/cn/celess/blog/enmu/ResponseEnum.java @@ -59,6 +59,8 @@ public enum ResponseEnum { //其他 APPLY_LINK_NO_ADD_THIS_SITE(7200, "暂未在您的网站中抓取到本站链接"), + DATA_EXPIRED(7300, "数据过期"), + CANNOT_GET_DATA(7400, "暂无法获取到数据"), //提交更新之前,没有获取数据/, DID_NOT_GET_THE_DATA(8020, "非法访问"), diff --git a/src/main/java/cn/celess/blog/service/PartnerSiteService.java b/src/main/java/cn/celess/blog/service/PartnerSiteService.java index 1ef52d3..61ba0c0 100644 --- a/src/main/java/cn/celess/blog/service/PartnerSiteService.java +++ b/src/main/java/cn/celess/blog/service/PartnerSiteService.java @@ -60,4 +60,6 @@ public interface PartnerSiteService { * @return linkApplyReq */ PartnerSite apply(LinkApplyReq linkApplyReq); + + Object reapply(String key); } diff --git a/src/main/java/cn/celess/blog/service/serviceimpl/PartnerSiteServiceImpl.java b/src/main/java/cn/celess/blog/service/serviceimpl/PartnerSiteServiceImpl.java index ad192f8..dd6078e 100644 --- a/src/main/java/cn/celess/blog/service/serviceimpl/PartnerSiteServiceImpl.java +++ b/src/main/java/cn/celess/blog/service/serviceimpl/PartnerSiteServiceImpl.java @@ -10,6 +10,7 @@ import cn.celess.blog.mapper.PartnerMapper; import cn.celess.blog.service.MailService; import cn.celess.blog.service.PartnerSiteService; import cn.celess.blog.util.HttpUtil; +import cn.celess.blog.util.JwtUtil; import cn.celess.blog.util.RedisUtil; import cn.celess.blog.util.RegexUtil; import com.fasterxml.jackson.databind.ObjectMapper; @@ -152,7 +153,9 @@ public class PartnerSiteServiceImpl implements PartnerSiteService { } // 抓取页面 String resp = HttpUtil.getAfterRendering(linkApplyReq.getLinkUrl()); - assert resp != null; + if (resp == null) { + throw new MyException(ResponseEnum.CANNOT_GET_DATA); + } PartnerSite ps = new PartnerSite(); if (resp.contains(SITE_URL)) { //包含站点 @@ -183,4 +186,27 @@ public class PartnerSiteServiceImpl implements PartnerSiteService { } return ps; } + + @SneakyThrows + @Override + public Object reapply(String key) { + if (!redisUtil.hasKey(key)) { + throw new MyException(ResponseEnum.DATA_EXPIRED); + } + String s = redisUtil.get(key); + ObjectMapper mapper = new ObjectMapper(); + LinkApplyReq linkApplyReq = mapper.readValue(s, LinkApplyReq.class); + if (linkApplyReq == null) { + throw new MyException(ResponseEnum.DATA_NOT_EXIST); + } + SimpleMailMessage smm = new SimpleMailMessage(); + smm.setSubject("友链申请"); + smm.setText("有一条未抓取到信息的友链申请,[\n" + linkApplyReq.toString() + "\n]"); + smm.setTo(SITE_EMAIL); + smm.setSentDate(new Date()); + mailService.send(smm); + redisUtil.delete(key); + redisUtil.delete(linkApplyReq.getUrl()); + return "success"; + } }