From 91bb52a8bf5f6bd0815f9673a5cddb6d47cacadd Mon Sep 17 00:00:00 2001 From: xjs <1294405880@qq.com> Date: Mon, 18 Apr 2022 17:51:37 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=BC=95=E5=85=A5spring-retry?= =?UTF-8?q?=E9=87=8D=E8=AF=95=E6=A1=86=E6=9E=B6=EF=BC=8C=E5=BD=93=E9=82=AE?= =?UTF-8?q?=E4=BB=B6=E5=8F=91=E9=80=81=E5=A4=B1=E8=B4=A5=E6=97=B6=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E9=87=8D=E8=AF=95=202=E3=80=81=E7=88=AC=E8=99=AB?= =?UTF-8?q?=E4=B8=AD=E5=85=B3=E6=9D=91=E6=95=B0=E6=8D=AE=E5=88=86=E9=A1=B5?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 8 ++++++ xjs-business/xjs-business-warning/pom.xml | 6 +++++ .../src/main/java/com/xjs/XjsWarningApp.java | 2 ++ .../main/java/com/xjs/server/MailServer.java | 3 +++ .../zol/controller/ZolPhoneController.java | 23 +++++++++++++++- .../com/xjs/zol/service/ZolPhoneService.java | 9 +++++++ .../zol/service/impl/ZolPhoneServiceImpl.java | 27 +++++++++++++++++++ 7 files changed, 77 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e5101a50..fe5daf0d 100644 --- a/pom.xml +++ b/pom.xml @@ -55,6 +55,7 @@ 3.12.0 1.0.5 7.1.0.M4 + 1.3.2 @@ -151,6 +152,13 @@ pom + + + org.springframework.retry + spring-retry + ${retry.version} + + com.xjs diff --git a/xjs-business/xjs-business-warning/pom.xml b/xjs-business/xjs-business-warning/pom.xml index 2c0c555c..ef9b6596 100644 --- a/xjs-business/xjs-business-warning/pom.xml +++ b/xjs-business/xjs-business-warning/pom.xml @@ -51,6 +51,12 @@ org.springframework.boot spring-boot-starter-thymeleaf + + + + org.springframework.retry + spring-retry + diff --git a/xjs-business/xjs-business-warning/src/main/java/com/xjs/XjsWarningApp.java b/xjs-business/xjs-business-warning/src/main/java/com/xjs/XjsWarningApp.java index 5ea9e72f..3096863f 100644 --- a/xjs-business/xjs-business-warning/src/main/java/com/xjs/XjsWarningApp.java +++ b/xjs-business/xjs-business-warning/src/main/java/com/xjs/XjsWarningApp.java @@ -5,6 +5,7 @@ import com.ruoyi.common.security.annotation.EnableRyFeignClients; import com.ruoyi.common.swagger.annotation.EnableCustomSwagger2; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.retry.annotation.EnableRetry; import org.springframework.scheduling.annotation.EnableScheduling; /** @@ -17,6 +18,7 @@ import org.springframework.scheduling.annotation.EnableScheduling; @EnableCustomSwagger2 @EnableRyFeignClients @EnableScheduling +@EnableRetry //启动重试机制 public class XjsWarningApp { public static void main(String[] args) { SpringApplication.run(XjsWarningApp.class, args); diff --git a/xjs-business/xjs-business-warning/src/main/java/com/xjs/server/MailServer.java b/xjs-business/xjs-business-warning/src/main/java/com/xjs/server/MailServer.java index 597b6d0f..bfb59e0e 100644 --- a/xjs-business/xjs-business-warning/src/main/java/com/xjs/server/MailServer.java +++ b/xjs-business/xjs-business-warning/src/main/java/com/xjs/server/MailServer.java @@ -9,9 +9,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.io.ByteArrayResource; import org.springframework.core.io.FileSystemResource; +import org.springframework.mail.MailException; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; +import org.springframework.retry.annotation.Retryable; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; import org.thymeleaf.TemplateEngine; @@ -58,6 +60,7 @@ public class MailServer { * @param mailBean 邮箱实体 */ @MailLog + @Retryable(maxAttempts = 2, value = MailException.class) //当抛出MailException异常时,该方法重试两次 public Boolean sendMail(MailBean mailBean) { if (redisService.hasKey(MAIL_STATUS)) { diff --git a/xjs-business/xjs-business-webmagic/src/main/java/com/xjs/zol/controller/ZolPhoneController.java b/xjs-business/xjs-business-webmagic/src/main/java/com/xjs/zol/controller/ZolPhoneController.java index d903ead1..62cda3ae 100644 --- a/xjs-business/xjs-business-webmagic/src/main/java/com/xjs/zol/controller/ZolPhoneController.java +++ b/xjs-business/xjs-business-webmagic/src/main/java/com/xjs/zol/controller/ZolPhoneController.java @@ -1,6 +1,17 @@ package com.xjs.zol.controller; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.xjs.validation.group.SelectGroup; +import com.xjs.web.MyBaseController; +import com.xjs.zol.pojo.ZolPhone; +import com.xjs.zol.service.ZolPhoneService; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -12,7 +23,17 @@ import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("zol-phone") @Api(tags = "爬虫模块-中关村手机") -public class ZolPhoneController { +public class ZolPhoneController extends MyBaseController { + @Autowired + private ZolPhoneService zolPhoneService; + + @RequiresPermissions("webmagic:zol-phone:list") + @GetMapping("/list") + @ApiOperation("查询中关村手机列表") + public AjaxResult list(@Validated({SelectGroup.class}) ZolPhone zolPhone) { + IPage page=zolPhoneService.selectZolPhoneByPage(startPageMP(),zolPhone); + return AjaxResult.success(page); + } } diff --git a/xjs-business/xjs-business-webmagic/src/main/java/com/xjs/zol/service/ZolPhoneService.java b/xjs-business/xjs-business-webmagic/src/main/java/com/xjs/zol/service/ZolPhoneService.java index 7c26bb66..9607a9ee 100644 --- a/xjs-business/xjs-business-webmagic/src/main/java/com/xjs/zol/service/ZolPhoneService.java +++ b/xjs-business/xjs-business-webmagic/src/main/java/com/xjs/zol/service/ZolPhoneService.java @@ -1,5 +1,7 @@ package com.xjs.zol.service; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.xjs.zol.pojo.ZolPhone; @@ -9,4 +11,11 @@ import com.xjs.zol.pojo.ZolPhone; * @since 2022-04-18 */ public interface ZolPhoneService extends IService { + /** + * 分页查询中关村手机数据 + * @param startPageMP mp封装的前端通用参数 + * @param zolPhone 实体 + * @return page对象 + */ + IPage selectZolPhoneByPage(Page startPageMP, ZolPhone zolPhone); } diff --git a/xjs-business/xjs-business-webmagic/src/main/java/com/xjs/zol/service/impl/ZolPhoneServiceImpl.java b/xjs-business/xjs-business-webmagic/src/main/java/com/xjs/zol/service/impl/ZolPhoneServiceImpl.java index ddcad8bd..93fb2aa4 100644 --- a/xjs-business/xjs-business-webmagic/src/main/java/com/xjs/zol/service/impl/ZolPhoneServiceImpl.java +++ b/xjs-business/xjs-business-webmagic/src/main/java/com/xjs/zol/service/impl/ZolPhoneServiceImpl.java @@ -1,16 +1,43 @@ package com.xjs.zol.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.core.utils.StringUtils; import com.xjs.zol.mapper.ZolPhoneMapper; import com.xjs.zol.pojo.ZolPhone; import com.xjs.zol.service.ZolPhoneService; import org.springframework.stereotype.Service; +import java.util.Objects; + /** * 爬虫数据中关村手机service实现 + * * @author xiejs * @since 2022-04-18 */ @Service public class ZolPhoneServiceImpl extends ServiceImpl implements ZolPhoneService { + + @Override + public IPage selectZolPhoneByPage(Page startPageMP, ZolPhone zolPhone) { + String condition = zolPhone.getCondition(); + + LambdaQueryWrapper wr = new LambdaQueryWrapper<>(); + + //根据时间查询 + boolean b = Objects.nonNull(zolPhone.getCreateTime()) && Objects.nonNull(zolPhone.getEndCreateTime()); + wr.between(b, ZolPhone::getCreateTime, zolPhone.getCreateTime(), zolPhone.getEndCreateTime()); + + //通用查询/组合查询 + wr.and(StringUtils.isNotEmpty(condition), obj -> { + obj.like(ZolPhone::getPhoneName, condition) + .or() + .like(ZolPhone::getDescription, condition); + }); + + return this.page(startPageMP,wr); + } }