From 9c949576aad40532702becc7867d2f3944bb1146 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A6=BE=E5=87=A0=E6=B5=B7?= Date: Fri, 31 Jul 2020 23:18:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=93=E5=8F=96=E7=BD=91=E9=A1=B5=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=EF=BC=8C=E8=BF=9B=E8=A1=8C=E6=95=B0=E6=8D=AE=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/celess/blog/enmu/ResponseEnum.java | 1 + .../cn/celess/blog/entity/PartnerSite.java | 4 +++ .../serviceimpl/PartnerSiteServiceImpl.java | 36 +++++++++++++++++++ .../resources/mapper/PartnerSiteMapper.xml | 22 +++++++----- 4 files changed, 55 insertions(+), 8 deletions(-) diff --git a/src/main/java/cn/celess/blog/enmu/ResponseEnum.java b/src/main/java/cn/celess/blog/enmu/ResponseEnum.java index 9cca273..6d1d1d8 100644 --- a/src/main/java/cn/celess/blog/enmu/ResponseEnum.java +++ b/src/main/java/cn/celess/blog/enmu/ResponseEnum.java @@ -58,6 +58,7 @@ public enum ResponseEnum { DATA_HAS_EXIST(7020, "数据已存在"), //其他 + APPLY_LINK_NO_ADD_THIS_SITE(7200, "暂未在您的网站中抓取到本站链接"), //提交更新之前,没有获取数据/, DID_NOT_GET_THE_DATA(8020, "非法访问"), diff --git a/src/main/java/cn/celess/blog/entity/PartnerSite.java b/src/main/java/cn/celess/blog/entity/PartnerSite.java index a45c477..fad6356 100644 --- a/src/main/java/cn/celess/blog/entity/PartnerSite.java +++ b/src/main/java/cn/celess/blog/entity/PartnerSite.java @@ -25,6 +25,10 @@ public class PartnerSite { private Boolean delete = false; + private String email; + + private Boolean notification; + public PartnerSite() { } 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 c3a2f68..5ca637c 100644 --- a/src/main/java/cn/celess/blog/service/serviceimpl/PartnerSiteServiceImpl.java +++ b/src/main/java/cn/celess/blog/service/serviceimpl/PartnerSiteServiceImpl.java @@ -7,15 +7,20 @@ import cn.celess.blog.entity.request.LinkApplyReq; import cn.celess.blog.entity.request.LinkReq; import cn.celess.blog.exception.MyException; 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.RegexUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.apache.commons.lang.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.mail.SimpleMailMessage; import org.springframework.stereotype.Service; +import javax.validation.constraints.Email; +import java.util.Date; import java.util.List; /** @@ -26,6 +31,11 @@ import java.util.List; public class PartnerSiteServiceImpl implements PartnerSiteService { @Autowired PartnerMapper partnerMapper; + @Autowired + MailService mailService; + private static final String SITE_NAME = "小海博客"; + private static final String SITE_URL = "celess.cn"; + private static final String SITE_EMAIL = "a@celess.cn"; @Override public PartnerSite create(LinkReq reqBody) { @@ -118,6 +128,32 @@ public class PartnerSiteServiceImpl implements PartnerSiteService { || StringUtils.isEmpty(linkApplyReq.getLinkUrl())) { throw new MyException(ResponseEnum.PARAMETERS_ERROR); } + if (RegexUtil.emailMatch(linkApplyReq.getEmail())) { + throw new MyException(ResponseEnum.PARAMETERS_EMAIL_ERROR); + } + if (RegexUtil.urlMatch(linkApplyReq.getLinkUrl()) || RegexUtil.urlMatch(linkApplyReq.getUrl()) + || (!StringUtils.isEmpty(linkApplyReq.getIconPath()) && RegexUtil.urlMatch(linkApplyReq.getIconPath()))) { + throw new MyException(ResponseEnum.PARAMETERS_URL_ERROR); + } + if (StringUtils.isEmpty(linkApplyReq.getIconPath())) { + linkApplyReq.setIconPath(""); + } + String resp = HttpUtil.getAfterRendering(linkApplyReq.getLinkUrl()); + assert resp != null; + if (resp.contains(SITE_URL)) { + PartnerSite ps = new PartnerSite(); + BeanUtils.copyProperties(linkApplyReq, ps); + ps.setOpen(false); + partnerMapper.insert(ps); + SimpleMailMessage smm = new SimpleMailMessage(); + smm.setSubject("友链申请"); + smm.setText("有一条友链申请,[\n" + linkApplyReq.toString() + "\n]"); + smm.setTo(SITE_EMAIL); + smm.setSentDate(new Date()); + mailService.send(smm); + } else { + throw new MyException(ResponseEnum.APPLY_LINK_NO_ADD_THIS_SITE); + } return null; } } diff --git a/src/main/resources/mapper/PartnerSiteMapper.xml b/src/main/resources/mapper/PartnerSiteMapper.xml index d15d7ff..b763e3d 100644 --- a/src/main/resources/mapper/PartnerSiteMapper.xml +++ b/src/main/resources/mapper/PartnerSiteMapper.xml @@ -9,20 +9,26 @@ + + - insert into links (l_name, l_is_open, l_url, l_icon_path, l_desc, is_delete) - values (#{name}, #{open}, #{url}, #{iconPath}, #{desc}, false) + insert into links (l_name, l_is_open, l_url, l_icon_path, l_desc, l_email, l_notification, is_delete) + values (#{name}, #{open}, #{url}, #{iconPath}, #{desc}, #{email}, #{notification}, false) - update links set - l_is_open=#{open}, - l_icon_path=#{iconPath}, - l_desc=#{desc}, - l_url=#{url}, - l_name=#{name} + update links + + l_is_open=#{open}, + l_icon_path=#{iconPath}, + l_desc=#{desc}, + l_url=#{url}, + l_name=#{name}, + l_notification=#{notification}, + l_email=#{email} + where l_id=#{id}