From 696b39e6af441305007aa2a134fe473af4789745 Mon Sep 17 00:00:00 2001
From: ljl <>
Date: Fri, 30 Jun 2023 14:38:29 +0800
Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9Erabbitmq?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 2 +-
ruoyi-admin/pom.xml | 5 +-
.../controller/common/CaptchaController.java | 31 ++-
.../controller/house/BuyHousesController.java | 5 +
.../house/HousesReviewController.java | 15 ++
.../monitor/SysUserOnlineController.java | 2 +-
.../controller/system/SysLoginController.java | 14 +-
.../system/SysProfileController.java | 17 +-
.../src/main/resources/application-dev.yml | 17 +-
.../src/main/resources/application-prod.yml | 3 +-
.../src/main/resources/application.yml | 5 +-
.../java/com/ruoyi/test/DemoUnitTest.java | 45 +++-
.../com/ruoyi/common/helper/LoginHelper.java | 15 +-
.../com/ruoyi/common/utils/CardsUtil.java | 199 ++++++++++++++++++
.../com/ruoyi/common/utils/DateUtils.java | 22 ++
.../com/ruoyi/common/utils/StringUtils.java | 13 ++
ruoyi-rabbitmq/pom.xml | 4 +-
.../mq/config/DelayedRabbitMQConfig.java | 55 -----
.../mq/config/PluginDelayRabbitConfig.java | 24 ++-
.../com/ruoyi/mq/config/RabbitConfig.java | 4 +-
.../mq/config/RabbitMQConfiguration.java | 54 -----
.../mq/config/TalentsDelayRabbitConfig.java | 46 ++++
.../java/com/ruoyi/mq/service/Consumer.java | 24 ---
.../com/ruoyi/mq/service/DirectReceiver.java | 27 +++
.../ruoyi/mq/service/FanoutEmailConsumer.java | 19 --
.../com/ruoyi/mq/service/OrderService.java | 27 ---
.../ruoyi/mq/service/PluginDelayConsumer.java | 24 ---
.../java/com/ruoyi/mq/service/Produceras.java | 23 --
.../ruoyi/mq/service/SendTalentsTemplate.java | 27 +++
.../java/com/ruoyi/sms/core/SmsTemplate.java | 1 +
.../com/ruoyi/sms/core/TelecomSendMsg.java | 159 ++++++++++++++
.../ruoyi/system/domain/SubscribeExport.java | 2 +
.../system/domain/dto/BuyHousesEvent.java | 2 +-
.../service/impl/BuyHousesServiceImpl.java | 181 +++++++++++++++-
.../service/impl/HousesReviewServiceImpl.java | 8 +
.../service/impl/SysRoleServiceImpl.java | 2 +-
.../mapper/system/SubscribeExportMapper.xml | 1 +
.../com/ruoyi/work/utils/WorkComplyUtils.java | 6 +-
38 files changed, 839 insertions(+), 291 deletions(-)
create mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/utils/CardsUtil.java
delete mode 100644 ruoyi-rabbitmq/src/main/java/com/ruoyi/mq/config/DelayedRabbitMQConfig.java
delete mode 100644 ruoyi-rabbitmq/src/main/java/com/ruoyi/mq/config/RabbitMQConfiguration.java
create mode 100644 ruoyi-rabbitmq/src/main/java/com/ruoyi/mq/config/TalentsDelayRabbitConfig.java
delete mode 100644 ruoyi-rabbitmq/src/main/java/com/ruoyi/mq/service/Consumer.java
create mode 100644 ruoyi-rabbitmq/src/main/java/com/ruoyi/mq/service/DirectReceiver.java
delete mode 100644 ruoyi-rabbitmq/src/main/java/com/ruoyi/mq/service/FanoutEmailConsumer.java
delete mode 100644 ruoyi-rabbitmq/src/main/java/com/ruoyi/mq/service/OrderService.java
delete mode 100644 ruoyi-rabbitmq/src/main/java/com/ruoyi/mq/service/PluginDelayConsumer.java
delete mode 100644 ruoyi-rabbitmq/src/main/java/com/ruoyi/mq/service/Produceras.java
create mode 100644 ruoyi-rabbitmq/src/main/java/com/ruoyi/mq/service/SendTalentsTemplate.java
create mode 100644 ruoyi-sms/src/main/java/com/ruoyi/sms/core/TelecomSendMsg.java
diff --git a/pom.xml b/pom.xml
index 246259daf..1293e73bd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,7 @@
5.2.3
3.2.1
2.3
- 1.34.0
+ 1.35.0.RC
3.5.3.1
3.9.1
5.8.18
diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml
index 849adef76..186f700e5 100644
--- a/ruoyi-admin/pom.xml
+++ b/ruoyi-admin/pom.xml
@@ -94,10 +94,11 @@
ruoyi-file
-
+ 4.7.0
+
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java
index f5a603a43..7c272aa4f 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java
@@ -4,11 +4,18 @@ import cn.dev33.satoken.annotation.SaIgnore;
import cn.hutool.captcha.AbstractCaptcha;
import cn.hutool.captcha.generator.CodeGenerator;
import cn.hutool.core.util.IdUtil;
+import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.common.annotation.RateLimiter;
import com.ruoyi.common.constant.CacheConstants;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.enums.CaptchaType;
+import com.ruoyi.common.enums.LimitType;
+import com.ruoyi.common.enums.UserStatus;
+import com.ruoyi.common.exception.user.UserException;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.email.MailUtils;
import com.ruoyi.common.utils.redis.RedisUtils;
@@ -18,7 +25,9 @@ import com.ruoyi.framework.config.properties.CaptchaProperties;
import com.ruoyi.framework.config.properties.MailProperties;
import com.ruoyi.sms.config.properties.SmsProperties;
import com.ruoyi.sms.core.SmsTemplate;
+import com.ruoyi.sms.core.TelecomSendMsg;
import com.ruoyi.sms.entity.SmsResult;
+import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.service.ISysConfigService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -50,6 +59,7 @@ public class CaptchaController {
private final SmsProperties smsProperties;
private final ISysConfigService configService;
private final MailProperties mailProperties;
+ private final SysUserMapper sysUserMapper;
/**
* 短信验证码
@@ -61,15 +71,22 @@ public class CaptchaController {
if (!smsProperties.getEnabled()) {
return R.fail("当前系统没有开启短信功能!");
}
+ //判断系统中是否存在该人才
+ SysUser user = sysUserMapper.selectOne(new LambdaQueryWrapper()
+ .select(SysUser::getPhonenumber, SysUser::getStatus)
+ .eq(SysUser::getPhonenumber, phonenumber));
+ if (ObjectUtil.isNull(user)) {
+ log.info("登录用户:{} 不存在.", phonenumber);
+ throw new UserException("user.not.exists", phonenumber);
+ } else if (UserStatus.DISABLE.getCode().equals(user.getStatus())) {
+ log.info("登录用户:{} 已被停用.", phonenumber);
+ throw new UserException("user.blocked", phonenumber);
+ }
String key = CacheConstants.CAPTCHA_CODE_KEY + phonenumber;
- String code = RandomUtil.randomNumbers(4);
+ String code = RandomUtil.randomNumbers(6);
RedisUtils.setCacheObject(key, code, Duration.ofMinutes(Constants.CAPTCHA_EXPIRATION));
- // 验证码模板id 自行处理 (查数据库或写死均可)
- String templateId = "";
- Map map = new HashMap<>(1);
- map.put("code", code);
- SmsTemplate smsTemplate = SpringUtils.getBean(SmsTemplate.class);
- SmsResult result = smsTemplate.send(phonenumber, templateId, map);
+ TelecomSendMsg smsTemplate = SpringUtils.getBean(TelecomSendMsg.class);
+ SmsResult result = smsTemplate.telecomSendCode(phonenumber, code, "login");
if (!result.isSuccess()) {
log.error("验证码短信发送异常 => {}", result);
return R.fail(result.getMessage());
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/house/BuyHousesController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/house/BuyHousesController.java
index 170b64736..ab3d1bcbc 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/house/BuyHousesController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/house/BuyHousesController.java
@@ -126,6 +126,7 @@ public class BuyHousesController extends BaseController {
/**
* 首页购房申请表展示
*/
+// @SaCheckPermission("system:houses:indexType")
@GetMapping("/indexType")
public R>getIndexType(){
return iBuyHousesService.getIndexType();
@@ -134,6 +135,7 @@ public class BuyHousesController extends BaseController {
/**
* 首页企业所在地展示
*/
+// @SaCheckPermission("system:houses:companyDistrict")
@GetMapping("/companyDistrict")
public R>getCompanyDistrict(){
return iBuyHousesService.getCompanyDistrict();
@@ -141,6 +143,7 @@ public class BuyHousesController extends BaseController {
/**
* 首页国籍和婚姻状态展示
*/
+// @SaCheckPermission("system:houses:nationalityAndMarital")
@GetMapping("/nationalityAndMarital")
public R>getNationalityAndMarital(){
return iBuyHousesService.getNationalityAndMarital();
@@ -149,6 +152,7 @@ public class BuyHousesController extends BaseController {
/**
* 首页第一排基础数据
*/
+// @SaCheckPermission("system:houses:basicData")
@GetMapping("/basicData")
public R getBasicData(){
return iBuyHousesService.getBasicData();
@@ -157,6 +161,7 @@ public class BuyHousesController extends BaseController {
/**
* 复审柱状图
*/
+// @SaCheckPermission("system:houses:histogram")
@GetMapping("/histogram")
public R getHistogram(String date){
return iBuyHousesService.getHistogram(date);
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/house/HousesReviewController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/house/HousesReviewController.java
index 6fdc407f1..01407f59d 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/house/HousesReviewController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/house/HousesReviewController.java
@@ -14,7 +14,9 @@ import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.excel.ExcelResult;
+import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.helper.LoginHelper;
+import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.domain.BuyHouses;
import com.ruoyi.system.domain.HousesReview;
@@ -179,6 +181,19 @@ public class HousesReviewController extends BaseController {
public R importData(@RequestPart("file") MultipartFile file) throws Exception {
ExcelResult result = ExcelUtil.importExcel(file.getInputStream(), HousesReviewVo.class, true);
List volist = result.getList();
+ //判断时间格式是否正确
+ volist.stream().forEach(v ->{
+ if (!DateUtils.checkDate(v.getQualificationConfirmTime(),DateUtils.YYYY_MM_DD_HH_MM_SS)){
+ throw new ServiceException("资格确认时间格式不正确,格式为:"+DateUtils.YYYY_MM_DD_HH_MM_SS);
+ }
+ if (!DateUtils.checkDate(v.getAuditTime(),DateUtils.YYYY_MM_DD)){
+ throw new ServiceException("审核时间格式不正确,格式为:"+DateUtils.YYYY_MM_DD);
+ }
+ if (!DateUtils.checkDate(v.getRegisterFailureTime(),DateUtils.YYYY_MM_DD)){
+ throw new ServiceException("登记失效时间格式不正确,格式为:"+DateUtils.YYYY_MM_DD);
+ }
+ });
+
List list = BeanUtil.copyToList(volist, HousesReview.class);
//先获取到导入数据的身份证去购房一期数据库去查
//过滤出导入表中的身份证号码
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java
index 33d425a6a..17e6d5af5 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java
@@ -47,7 +47,7 @@ public class SysUserOnlineController extends BaseController {
for (String key : keys) {
String token = StringUtils.substringAfterLast(key, ":");
// 如果已经过期则跳过
- if (StpUtil.stpLogic.getTokenActivityTimeoutByToken(token) < -1) {
+ if (StpUtil.stpLogic.getTokenActiveTimeoutByToken(token) < -1) {
continue;
}
userOnlineDTOList.add(RedisUtils.getCacheObject(CacheConstants.ONLINE_TOKEN_KEY + token));
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
index f2e475ddc..e123e3ace 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -16,6 +16,7 @@ import com.ruoyi.common.utils.StrUtils;
import com.ruoyi.common.utils.redis.RedisUtils;
import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.sms.core.SmsTemplate;
+import com.ruoyi.sms.core.TelecomSendMsg;
import com.ruoyi.sms.entity.SmsResult;
import com.ruoyi.system.domain.vo.RouterVo;
import com.ruoyi.system.service.ISysMenuService;
@@ -44,6 +45,7 @@ public class SysLoginController {
private final ISysMenuService menuService;
private final ISysUserService userService;
+
/**
* 登录方法
*
@@ -220,7 +222,7 @@ public class SysLoginController {
if (!matches) {
return R.fail("手机号格式不正确");
}
- return sendMsg(phones,CacheConstants.RORGOT_PASSWORD_SEND_MSG+phones);
+ return sendMsg(phones,CacheConstants.RORGOT_PASSWORD_SEND_MSG+phones,"forgetPwd");
}
/**
@@ -236,7 +238,7 @@ public class SysLoginController {
if (!matches) {
return R.fail("手机号格式不正确");
}
- return sendMsg(phones,CacheConstants.REGISTER_SEND_MSG+phones);
+ return sendMsg(phones,CacheConstants.REGISTER_SEND_MSG+phones,"register");
}
/**
@@ -252,20 +254,20 @@ public class SysLoginController {
if (!matches) {
return R.fail("手机号格式不正确");
}
- return sendMsg(phones,CacheConstants.SMS_LOGIN_SEND_MSG+phones);
+ return sendMsg(phones,CacheConstants.SMS_LOGIN_SEND_MSG+phones,"login");
}
- public R> sendMsg(String phones,String key ){
+ public R> sendMsg(String phones,String key ,String type){
//1.获取redis中是否存在该key
Boolean aBoolean = RedisUtils.hasKey(key + phones);
if (aBoolean) {
return R.fail("当前账号验证码已发送,2分钟内有效,请勿再次点击");
} else {
- SmsTemplate smsTemplate = SpringUtils.getBean(SmsTemplate.class);
+ TelecomSendMsg smsTemplate = SpringUtils.getBean(TelecomSendMsg.class);
Map map = new HashMap<>(1);
String code = StrUtils.getRandomString(6);
map.put("code",code);
- SmsResult send = smsTemplate.send(phones, "SMS_174992554", map);
+ SmsResult send = smsTemplate.telecomSendCode(phones, code, type);
if (send.isSuccess()){
RedisUtils.setCacheObject(key + phones, code, Duration.ofMinutes(Constants.CAPTCHA_EXPIRATION));
return R.ok();
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java
index cbf0822fb..869b555b7 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java
@@ -9,11 +9,14 @@ import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.helper.LoginHelper;
import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.file.FileUtils;
import com.ruoyi.common.utils.file.MimeTypeUtils;
+import com.ruoyi.file.service.ISysFileService;
import com.ruoyi.system.domain.vo.SysOssVo;
import com.ruoyi.system.service.ISysOssService;
import com.ruoyi.system.service.ISysUserService;
import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -34,7 +37,8 @@ import java.util.Map;
public class SysProfileController extends BaseController {
private final ISysUserService userService;
- private final ISysOssService iSysOssService;
+// private final ISysOssService iSysOssService;
+ private final ISysFileService sysFileService;
/**
* 个人信息
@@ -104,17 +108,18 @@ public class SysProfileController extends BaseController {
*/
@Log(title = "用户头像", businessType = BusinessType.UPDATE)
@PostMapping(value = "/avatar", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
- public R