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);
+ }
}