From 77bc71a7913f5542204915fb15c6b60a88e2c27f Mon Sep 17 00:00:00 2001 From: ljl <> Date: Wed, 26 Jul 2023 16:46:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=8E=A8=E9=80=81=E6=97=A5?= =?UTF-8?q?=E5=BF=97,=E4=BB=A5=E5=8F=8A=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 5 + ruoyi-admin/pom.xml | 5 + .../main/java/com/ruoyi/RuoYiApplication.java | 1 + .../controller/common/CaptchaController.java | 13 -- .../controller/house/BuyHousesController.java | 1 + .../house/HousesReviewController.java | 16 ++- .../controller/system/SysLoginController.java | 3 +- .../web/controller/user/UserController.java | 15 +-- .../src/main/resources/application-dev.yml | 7 +- .../src/main/resources/application.yml | 2 +- .../main/resources/i18n/messages.properties | 6 +- .../resources/i18n/messages_zh_CN.properties | 4 +- .../src/main/resources/templates/111.html | 14 +++ .../java/com/ruoyi/test/DemoUnitTest.java | 72 +++++++---- .../advice/DecodeRequestBodyAdvice.java | 15 +-- .../advice/EncodeResponseBodyAdvice.java | 21 ++-- .../core/domain/entity/GaoXinCardInfo.java | 18 +++ .../core/domain/event/PushLogEvent.java | 37 ++++++ .../common/core/service/ConfigService.java | 3 + .../com/ruoyi/common/enums/LoginType.java | 1 + .../ruoyi/common/filter/RepeatableFilter.java | 6 +- .../java/com/ruoyi/common/utils/AesUtil.java | 115 ------------------ .../com/ruoyi/common/utils/OpenUtils.java | 29 ++++- .../com/ruoyi/common/utils/StringUtils.java | 9 ++ .../ruoyi/common/utils/file/MyFileUtils.java | 1 + .../com/ruoyi/common/utils/poi/ExcelUtil.java | 4 +- .../demo/controller/TestDemoController.java | 2 +- .../src/main/resources/application.yml | 4 +- .../controller/interceptor/WebMvcConfig.java | 2 +- ruoyi-file/pom.xml | 2 +- .../framework/config/ResourcesConfig.java | 6 +- .../PlusWebInvokeTimeInterceptor.java | 6 + ruoyi-rabbitmq/pom.xml | 2 +- .../java/com/ruoyi/sms/entity/SmsResult.java | 31 +++++ .../java/com/ruoyi/system/domain/PushLog.java | 39 ++++++ .../system/domain/bo/HousesReviewBo.java | 2 +- .../com/ruoyi/system/domain/bo/PushLogBo.java | 43 +++++++ .../system/domain/vo/HousesReviewVo.java | 3 + .../com/ruoyi/system/domain/vo/PushLogVo.java | 37 ++++++ .../ruoyi/system/mapper/PushLogMapper.java | 15 +++ .../ruoyi/system/service/IPushLogService.java | 45 +++++++ .../ruoyi/system/service/IUserService.java | 1 - .../ruoyi/system/service/SysLoginService.java | 8 +- .../service/impl/BuyHousesServiceImpl.java | 46 ++----- .../service/impl/HousesReviewServiceImpl.java | 2 +- .../service/impl/PushLogServiceImpl.java | 109 +++++++++++++++++ .../impl/SubscribeExportServiceImpl.java | 5 +- .../service/impl/SysConfigServiceImpl.java | 14 ++- .../service/impl/SysDeptServiceImpl.java | 3 +- .../service/impl/SysRoleServiceImpl.java | 3 +- .../service/impl/SysUserServiceImpl.java | 3 +- .../system/service/impl/UserServiceImpl.java | 20 --- .../resources/mapper/system/PushLogMapper.xml | 18 +++ .../resources/mapper/system/SysUserMapper.xml | 12 +- ruoyi-ui/vue.config.js | 2 +- ruoyi-work/pom.xml | 3 +- .../work/controller/ProcessController.java | 2 - .../ruoyi/work/controller/WorkController.java | 46 +++++-- .../com/ruoyi/work/domain/ActProcess.java | 8 +- .../com/ruoyi/work/domain/HisProcess.java | 10 ++ .../com/ruoyi/work/domain/vo/ProcessVo.java | 3 + .../dto/HousingConstructionBureauPushDto.java | 12 ++ .../ruoyi/work/mapper/ActProcessMapper.java | 2 + .../ruoyi/work/mapper/HisProcessMapper.java | 1 + .../com/ruoyi/work/mapper/ProcessMapper.java | 24 ++++ .../work/service/IWorkSysDeptService.java | 62 ---------- .../work/service/IWorkSysRoleService.java | 63 ---------- .../work/service/IWorkSysUserService.java | 51 -------- .../com/ruoyi/work/utils/WorkComplyUtils.java | 88 +++++++------- .../mapper/work/ActProcessMapper.xml | 27 +++- .../mapper/work/HisProcessMapper.xml | 20 +++ .../resources/mapper/work/ProcessMapper.xml | 65 ++++++++++ 72 files changed, 859 insertions(+), 536 deletions(-) create mode 100644 ruoyi-admin/src/main/resources/templates/111.html create mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/event/PushLogEvent.java delete mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/utils/AesUtil.java create mode 100644 ruoyi-sms/src/main/java/com/ruoyi/sms/entity/SmsResult.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/PushLog.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/PushLogBo.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/PushLogVo.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/mapper/PushLogMapper.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/service/IPushLogService.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/PushLogServiceImpl.java create mode 100644 ruoyi-system/src/main/resources/mapper/system/PushLogMapper.xml delete mode 100644 ruoyi-work/src/main/java/com/ruoyi/work/service/IWorkSysDeptService.java delete mode 100644 ruoyi-work/src/main/java/com/ruoyi/work/service/IWorkSysRoleService.java delete mode 100644 ruoyi-work/src/main/java/com/ruoyi/work/service/IWorkSysUserService.java diff --git a/pom.xml b/pom.xml index 3d8c79faf..41712829b 100644 --- a/pom.xml +++ b/pom.xml @@ -400,6 +400,11 @@ forest-spring-boot-starter 1.5.26 --> + + io.vertx + vertx-core + 4.2.3 + diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml index 00c170121..0541c2c16 100644 --- a/ruoyi-admin/pom.xml +++ b/ruoyi-admin/pom.xml @@ -112,6 +112,11 @@ + + io.vertx + vertx-core + 4.2.3 + diff --git a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java index b52d32d6e..7c4156d5f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java @@ -19,6 +19,7 @@ public class RuoYiApplication { application.setApplicationStartup(new BufferingApplicationStartup(2048)); application.run(args); System.out.println("(♥◠‿◠)ノ゙ RuoYi-Vue-Plus启动成功 ლ(´ڡ`ლ)゙"); + } } 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 d13c77aa3..8f4c88dee 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 @@ -23,18 +23,12 @@ import com.ruoyi.common.utils.reflect.ReflectUtils; import com.ruoyi.common.utils.spring.SpringUtils; 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; -import org.dromara.sms4j.api.SmsBlend; -import org.dromara.sms4j.api.entity.SmsResponse; -import org.dromara.sms4j.core.factory.SmsFactory; -import org.dromara.sms4j.provider.enumerate.SupplierType; import org.springframework.expression.Expression; import org.springframework.expression.ExpressionParser; import org.springframework.expression.spel.standard.SpelExpressionParser; @@ -70,14 +64,7 @@ public class CaptchaController { * @param username 用户手机号 */ @GetMapping("/captchaSms") - public R smsCaptcha(@NotBlank(message = "{user.phonenumber.not.blank}") String phonenumber) { - String key = CacheConstants.CAPTCHA_CODE_KEY + phonenumber; - String code = RandomUtil.randomNumbers(4); - public R smsCaptcha(@NotBlank(message = "{user.phonenumber.not.blank}") String username) { - if (!smsProperties.getEnabled()) { - return R.fail("当前系统没有开启短信功能!"); - } //判断系统中是否存在该人才 SysUser user = sysUserMapper.selectOne(new LambdaQueryWrapper() .select(SysUser::getPhonenumber, SysUser::getStatus) 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 b891538d6..fe29f3ef7 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 @@ -43,6 +43,7 @@ public class BuyHousesController extends BaseController { * 一期后台接口查询列表 */ @SaCheckPermission("system:houses:list") + @Log(title = "获取数据库一期数据", businessType = BusinessType.OTHER) @GetMapping("/list") public TableDataInfo list(BuyHousesBo bo, PageQuery pageQuery) { return iBuyHousesService.queryPageList(bo, pageQuery); 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 db53412f8..5af851c86 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 @@ -179,7 +179,7 @@ public class HousesReviewController extends BaseController { @SaCheckPermission("system:review:import") @PostMapping(value = "/review/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public R importData(@RequestPart("file") MultipartFile file) throws Exception { - ExcelResult result = ExcelUtil.importExcel(file.getInputStream(), HousesReviewVo.class, true); + ExcelResult result = ExcelUtil.importExcel(file.getInputStream(), HousesReviewVo.class, true,3); List volist = result.getList(); //判断时间格式是否正确 volist.stream().forEach(v ->{ @@ -197,11 +197,19 @@ public class HousesReviewController extends BaseController { List list = BeanUtil.copyToList(volist, HousesReview.class); //先获取到导入数据的身份证去购房一期数据库去查 //过滤出导入表中的身份证号码 - List collect = list.stream().filter( e ->ObjectUtil.isNotEmpty(e.getCard())).map(HousesReview::getCard).collect(Collectors.toList()); + List collect = list.stream() + .filter( e ->ObjectUtil.isNotEmpty(e.getCard())) + .map(HousesReview::getCard) + .collect(Collectors.toList()); if (collect.size()>0 && list.size()>0) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper().in(BuyHouses::getCardId, collect); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .in(BuyHouses::getCardId, collect) + .eq(BuyHouses::getProcessStatus,Constants.SUCCEED); //查询出导入数据中的身份证有那些是属于区级人才的 - List collect1 = buyHousesMapper.selectList(queryWrapper).stream().map(BuyHouses::getCardId).collect(Collectors.toList()); + List collect1 = buyHousesMapper.selectList(queryWrapper) + .stream() + .map(BuyHouses::getCardId) + .collect(Collectors.toList()); for (HousesReview housesReview : list) { housesReview.setProcessKey("house_review"); housesReview.setProcessStatus(Constants.SUBMIT); 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 0c96acdbe..c90bb4c27 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 @@ -15,7 +15,6 @@ import com.ruoyi.common.helper.LoginHelper; 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; @@ -162,7 +161,7 @@ public class SysLoginController { @RateLimiter(count = 2, time = 10) @PostMapping("/userLogin") public R userLogin( -// @Validated({LoginBody.passwordLogin.class}) + @Validated({LoginBody.passwordLogin.class}) @RequestBody LoginBody loginBody) { // 生成令牌 return R.ok("登录成功",loginService.userLogin(loginBody.getUsername(), loginBody.getPassword())); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/user/UserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/user/UserController.java index 86158dc40..8edf628ac 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/user/UserController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/user/UserController.java @@ -1,5 +1,6 @@ package com.ruoyi.web.controller.user; +import java.io.IOException; import java.util.LinkedHashMap; import java.util.List; import java.util.Arrays; @@ -114,14 +115,6 @@ public class UserController extends BaseController { return toAjax(iUserService.deleteWithValidByIds(Arrays.asList(ids), true)); } - /** - * 判断这个人是否具备申请购房资格 - */ - @GetMapping("cardId/{cardId}") - public RgetUserCandidateInfo(@PathVariable(value = "cardId") String cardId) throws Exception { - return iUserService.getUserCandidateInfo(cardId); - } - /** * 获取当前业务进行步骤 */ @@ -178,5 +171,9 @@ public class UserController extends BaseController { hashMap.put("list",processPlan); return R.ok(hashMap); } - + @SaIgnore + @GetMapping("/model") + public void module(HttpServletResponse response) throws IOException { + response.sendRedirect("https://dbxqtalents.cn/"); + } } diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml index 9011de80c..a032e3df5 100644 --- a/ruoyi-admin/src/main/resources/application-dev.yml +++ b/ruoyi-admin/src/main/resources/application-dev.yml @@ -5,8 +5,8 @@ spring.boot.admin.client: url: http://localhost:9090/admin instance: service-host-type: IP - username: ruoyi - password: 123456 + username: gaoxin + password: 1234Qwer@ --- # xxl-job 配置 xxl.job: @@ -55,6 +55,9 @@ spring: url: jdbc:mysql://182.138.107.22:3409/ry-vue-house?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true username: gxrc password: 45Uuq5!aADGD +# url: jdbc:mysql://localhost:3306/ry-vue-house?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true +# username: root +# password: 123456 # 从库数据源 slave: lazy: true diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 93093d59c..0224ae870 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -27,7 +27,7 @@ captcha: # 开发环境配置 server: # 服务器的HTTP端口,默认为8080 - port: 8084 + port: 8085 servlet: # 应用的访问路径 context-path: / diff --git a/ruoyi-admin/src/main/resources/i18n/messages.properties b/ruoyi-admin/src/main/resources/i18n/messages.properties index 25cf0cc55..968f0432b 100644 --- a/ruoyi-admin/src/main/resources/i18n/messages.properties +++ b/ruoyi-admin/src/main/resources/i18n/messages.properties @@ -5,7 +5,7 @@ user.jcaptcha.not.blank=验证码不可为空 user.jcaptcha.expire=验证码已失效 user.not.exists=对不起, 您的账号:{0} 不存在. user.password.not.match=用户不存在/密码错误 -user.password.retry.limit.count=密码输入错误{0}次 +user.password.retry.limit.count=密码输入错误{0}次,剩余{1}次 user.password.retry.limit.exceed=密码输入错误{0}次,帐户锁定{1}分钟 user.password.delete=对不起,您的账号:{0} 已被删除 user.blocked=对不起,您的账号:{0} 已禁用,请联系管理员 @@ -42,10 +42,10 @@ no.view.permission=您没有查看数据的权限,请联系管理员添加权 repeat.submit.message=不允许重复提交,请稍候再试 rate.limiter.message=访问过于频繁,请稍候再试 sms.code.not.blank=短信验证码不能为空 -sms.code.retry.limit.count=短信验证码输入错误{0}次 +sms.code.retry.limit.count=短信验证码输入错误{0}次,剩余{1}次 sms.code.retry.limit.exceed=短信验证码输入错误{0}次,帐户锁定{1}分钟 email.code.not.blank=邮箱验证码不能为空 -email.code.retry.limit.count=邮箱验证码输入错误{0}次 +email.code.retry.limit.count=邮箱验证码输入错误{0}次,剩余{1}次 email.code.retry.limit.exceed=邮箱验证码输入错误{0}次,帐户锁定{1}分钟 xcx.code.not.blank=小程序code不能为空 user.password.expired=对不起,您的账号:{0},密码已过期,请修改密码 diff --git a/ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties b/ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties index 05cd5d7ac..a9485d38d 100644 --- a/ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties +++ b/ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties @@ -5,7 +5,7 @@ user.jcaptcha.expire=验证码已失效 user.jcaptcha.not.blank=验证码不可为空 user.not.exists=对不起, 您的账号:{0} 不存在. user.password.not.match=用户不存在/密码错误 -user.password.retry.limit.count=密码输入错误{0}次 +user.password.retry.limit.count=密码输入错误{0}次,剩余{1}次 user.password.retry.limit.exceed=密码输入错误{0}次,帐户锁定{1}分钟 user.password.delete=对不起,您的账号:{0} 已被删除 user.blocked=对不起,您的账号:{0} 已禁用,请联系管理员 @@ -42,7 +42,7 @@ no.view.permission=您没有查看数据的权限,请联系管理员添加权 repeat.submit.message=不允许重复提交,请稍候再试 rate.limiter.message=访问过于频繁,请稍候再试 sms.code.not.blank=短信验证码不能为空 -sms.code.retry.limit.count=短信验证码输入错误{0}次 +sms.code.retry.limit.count=短信验证码输入错误{0}次,剩余{1}次 sms.code.retry.limit.exceed=短信验证码输入错误{0}次,帐户锁定{1}分钟 email.code.not.blank=邮箱验证码不能为空 email.code.retry.limit.count=邮箱验证码输入错误{0}次 diff --git a/ruoyi-admin/src/main/resources/templates/111.html b/ruoyi-admin/src/main/resources/templates/111.html new file mode 100644 index 000000000..1c6fb631b --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/111.html @@ -0,0 +1,14 @@ + + + + + + Page Title + + + + + + 重定向来了 + + \ No newline at end of file diff --git a/ruoyi-admin/src/test/java/com/ruoyi/test/DemoUnitTest.java b/ruoyi-admin/src/test/java/com/ruoyi/test/DemoUnitTest.java index ab8f01c25..77c8516bf 100644 --- a/ruoyi-admin/src/test/java/com/ruoyi/test/DemoUnitTest.java +++ b/ruoyi-admin/src/test/java/com/ruoyi/test/DemoUnitTest.java @@ -16,6 +16,8 @@ import cn.hutool.crypto.symmetric.AES; import cn.hutool.crypto.symmetric.SM4; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpUtil; +import cn.hutool.http.useragent.UserAgent; +import cn.hutool.http.useragent.UserAgentUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.alibaba.excel.EasyExcel; @@ -29,10 +31,7 @@ import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.GaoXinCardInfo; import com.ruoyi.common.helper.DataBaseHelper; -import com.ruoyi.common.utils.AesUtil; -import com.ruoyi.common.utils.DateUtils; -import com.ruoyi.common.utils.JsonUtils; -import com.ruoyi.common.utils.OpenUtils; +import com.ruoyi.common.utils.*; import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.demo.domain.ImageDemoData; import com.ruoyi.system.domain.*; @@ -67,6 +66,8 @@ import sun.misc.BASE64Encoder; import javax.crypto.*; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; @@ -227,7 +228,7 @@ public class DemoUnitTest { ProcessVo processVo = new ProcessVo(); processVo.setProcessKey("apply_house"); processVo.setStep("1"); - BuyHouses buyHouses = buyHousesMapper.selectById("3181"); + BuyHouses buyHouses = buyHousesMapper.selectById("3136"); buyHouses.setUpdateTime(DateUtils.getNowDate()); Map map = BeanUtil.beanToMap(buyHouses); processVo.setParams(map); @@ -425,21 +426,9 @@ public class DemoUnitTest { .header("Cookie","security.session.id=e1eee749-70da-48a5-8390-b99c7e1749e0") .execute() .body();*/ - String s = AesUtil.encryptBASE64("18716148446"); - System.out.println("s = " + s); - LinkedHashMap hashMap = new LinkedHashMap<>(); - JSONObject json1 = JSONUtil.createObj() - .set("loginName", AesUtil.encryptBASE64("15881326343")) - .set("password",AesUtil.encryptBASE64("Feng19891217")); // hashMap.put("loginName", AesUtil.encryptBASE64("18716148446")); // hashMap.put("password",AesUtil.encryptBASE64("1234Qwer")); - String http = HttpRequest.post("https://gx.chengdutalent.cn:8010/user/login") - .header("Content-Type","application/json;charset=UTF-8") - .body(String.valueOf(json1)) - .execute().body(); - String backURL = String.valueOf(JSONUtil.parseObj(http).get("backURL")); - System.out.println("http = " + http); /* BuyHouses buyHouses = buyHousesMapper.selectById(1011L); Map map = BeanUtil.beanToMap(buyHouses); List materialInfo = materialModuleService.getMaterialInfo(map); @@ -614,7 +603,7 @@ public class DemoUnitTest { public void test0212311123123(){ String publicKey="0435661bb2d13bba88f47af0bbe243fcded8f27ac298932661787f88ea283c2b31fe427e1aa8410826a963e9114fe5ffab4ad278aeeb7f1f161e735d1f50570e78"; HashMap map = new HashMap<>(); - map.put("username","15808234569"); + map.put("username","o6Jx05A8ze3Icr6KC59n8I0DBp14"); map.put("apiKey","gaoxingongyuanchengshiju"); String s = JSONUtil.toJsonPrettyStr(map); String doEncrypt = Sm2.doEncrypt(s, publicKey); @@ -761,10 +750,11 @@ public class DemoUnitTest { @Test public void test0121123(){ HashMap hashMap = new HashMap<>(); - hashMap.put("id","1"); - hashMap.put("status","00T"); + hashMap.put("id","3212"); + hashMap.put("status","00D"); hashMap.put("description","测试"); - housingConstructionBureauPushDto.send3(hashMap,"http://218.89.220.30:9200/rctopen/api/anju/openBuyHousesCallback"); + hashMap.put("auditDepartName","数字经济局功能区建设推进处"); + housingConstructionBureauPushDto.send3(hashMap,"https://www.cdhtrct.com/route/open/api/anju/openBuyHousesCallback"); } @Test @@ -841,10 +831,10 @@ public class DemoUnitTest { @Test public void testPush() throws ParseException { - Map map = WorkUtils.getInfoToMap("buy_houses","2"); + Map map = WorkUtils.getInfoToMap("buy_houses","3218"); String virtualcode = String.valueOf(map.get("virtualcode")); map.put("virtualcode", virtualcode == "3" ? "010" : "009"); - String cardType = String.valueOf(map.get("cardType")); + String cardType = String.valueOf(map.get("nationality")); map.put("cardType", "中国籍".equals(cardType) ? 1 : 4); Object createTime = map.get("createTime"); SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH); @@ -859,13 +849,27 @@ public class DemoUnitTest { map.put("buyHousesLogList", "null"); String s = housingConstructionBureauPushDto.openUrl("https://171.221.172.13:8088/CCSRegistryCenter/rest", map, "253"); } + @Test + public void testOut(){ + BuyHouses buyHouses = buyHousesMapper.selectById(3218); + Map map = new HashMap<>(); + map.put("id",buyHouses.getId()); + map.put("reason","人才主动提交");//原因 + map.put("userName",buyHouses.getUserName()); + map.put("cardId",buyHouses.getCardId()); + map.put("cancelTime", DateUtils.dateTime("yyyy-MM-dd HH:mm:ss")); + map.put("note","人才主动撤销");//备注 + map.put("status", "00N"); + System.out.println("JSONUtil.toJsonPrettyStr(map) = " + JSONUtil.toJsonPrettyStr(map)); + housingConstructionBureauPushDto.openUrl("https://jcfw.cdzjryb.com/CCSRegistryCenter/rest",map,"254");//正式 + } @Test public void paChon() throws Exception { - String str ="C2型人才国家级技能大师工作室领衔人"; - String substring = str.substring(0,1); - System.out.println("substring = " + substring); - +// R rInfo = OpenUtils.getGaoXinCardInfo("510503199602214055"); +// System.out.println("rInfo = " + rInfo); + String s = com.ruoyi.common.utils.StringUtils.toUpperCase("510503199602214055l"); + System.out.println("s = " + s); // buyHousesService.logout("3184"); // R gaoXinCardInfo = OpenUtils.getGaoXinCardInfo("510503199602214055"); @@ -894,5 +898,19 @@ public class DemoUnitTest { System.out.println("listContent = " + listContent);*/ } + + @Test + public void test45656() { + HttpRequest.get("https://rcaj.cdhtgycs.cn/gx-api/user/house/excelZip?id=3136") + .header("Referer", "https://rcaj.cdhtgycs.cn") + .execute() + .body(); + } + + @Test + public void testtttt(HttpServletResponse response) throws IOException { + response.sendRedirect("https://dbxqtalents.cn/111.html"); + + } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/advice/DecodeRequestBodyAdvice.java b/ruoyi-common/src/main/java/com/ruoyi/common/advice/DecodeRequestBodyAdvice.java index f083b62dd..4c26b5bc5 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/advice/DecodeRequestBodyAdvice.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/advice/DecodeRequestBodyAdvice.java @@ -2,10 +2,14 @@ package com.ruoyi.common.advice; import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.http.useragent.Platform; +import cn.hutool.http.useragent.UserAgent; +import cn.hutool.http.useragent.UserAgentUtil; import com.ruoyi.common.core.domain.RsaSecurity; import com.ruoyi.common.core.service.ConfigService; import com.ruoyi.common.core.service.IRsaSecurityService2; import com.ruoyi.common.utils.RSAUtil; +import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.common.utils.spring.SpringUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -47,10 +51,6 @@ public class DecodeRequestBodyAdvice implements RequestBodyAdvice { @Override public HttpInputMessage beforeBodyRead(HttpInputMessage inputMessage, MethodParameter methodParameter, Type type, Class> aClass) throws IOException { try { - //判断系统是否在维护中 - ConfigService sysConfigService = SpringUtils.getBean(ConfigService.class); - //系统升级提示 - sysConfigService.selectConfigByConfigKey("system:maintenance:prompt"); String path = inputMessage.getHeaders().getFirst("path"); String method = inputMessage.getHeaders().getFirst("method"); if (ObjectUtil.isNotNull(path)) { @@ -123,12 +123,13 @@ public class DecodeRequestBodyAdvice implements RequestBodyAdvice { String content = null; try { logger.info("解密密文:"+requestData); - if ("weixin".equals(targe)){ - content = RSAUtil.privateKeyDecryptStr(requestData,privateKey); - }else { + String substring1 = StringUtils.substring(requestData, 0, 1); + if ("\"".equals(substring1)){ String data1 = requestData.substring(1); String substring = requestData.substring(1, data1.length()); content = RSAUtil.privateKeyDecryptStr(substring,privateKey); + }else { + content = RSAUtil.privateKeyDecryptStr(requestData,privateKey); } logger.info("解密明文:"+content); } catch (Exception e) { diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/advice/EncodeResponseBodyAdvice.java b/ruoyi-common/src/main/java/com/ruoyi/common/advice/EncodeResponseBodyAdvice.java index 2c01689fb..210ba539e 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/advice/EncodeResponseBodyAdvice.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/advice/EncodeResponseBodyAdvice.java @@ -21,7 +21,6 @@ import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice; * @date 2018/10/25 20:17 */ @ControllerAdvice -//@RsaSecurityParameter() public class EncodeResponseBodyAdvice implements ResponseBodyAdvice { private final static Logger logger = LoggerFactory.getLogger(EncodeResponseBodyAdvice.class); private static final IRsaSecurityService2 rsaSecurityService=SpringUtils.getBean(IRsaSecurityService2.class); @@ -36,17 +35,17 @@ public class EncodeResponseBodyAdvice implements ResponseBodyAdvice { public Object beforeBodyWrite(Object body, MethodParameter methodParameter, MediaType mediaType, Class aClass, ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse) { // 此处要用反射将字段中的注解解析出来 String method = serverHttpRequest.getMethod().name(); - String path = serverHttpRequest.getURI().getPath(); - RsaSecurity info = rsaSecurityService.getInfo(path,method); - if (ObjectUtil.isNotNull(info)) { - if ("1".equals(info.getRestricted())){ - return R.fail("接口已限制请求"); - } - if ("1".equals(info.getOutEncode())) { - serverHttpResponse.getHeaders().add("isRsaencrypt","true"); - return encodeRsa(methodParameter, body, info.getPublicKey()); - } + String path = serverHttpRequest.getURI().getPath(); + RsaSecurity info = rsaSecurityService.getInfo(path,method); + if (ObjectUtil.isNotNull(info)) { + if ("1".equals(info.getRestricted())){ + return R.fail("接口已限制请求"); } + if ("1".equals(info.getOutEncode())) { + serverHttpResponse.getHeaders().add("isRsaencrypt","true"); + return encodeRsa(methodParameter, body, info.getPublicKey()); + } + } serverHttpResponse.getHeaders().add("isRsaencrypt","false"); return body; /*if (methodParameter.getMethod().isAnnotationPresent(RsaSecurityParameter.class)) { diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/GaoXinCardInfo.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/GaoXinCardInfo.java index bc42b2225..cdc77614b 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/GaoXinCardInfo.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/GaoXinCardInfo.java @@ -1,6 +1,7 @@ package com.ruoyi.common.core.domain.entity; import cn.hutool.core.util.ObjectUtil; +import com.ruoyi.common.exception.ServiceException; import lombok.Data; import org.springframework.util.StringUtils; @@ -10,6 +11,7 @@ import java.io.Serializable; * @author Administrator * 高新人才接口返回所需 */ + @Data public class GaoXinCardInfo implements Serializable { @@ -50,6 +52,7 @@ public class GaoXinCardInfo implements Serializable { */ private String education; + public String getType() { return type; } @@ -64,4 +67,19 @@ public class GaoXinCardInfo implements Serializable { } } } + + public String getNationality() { + return nationality; + } + + public void setNationality(String nationality) { + if (ObjectUtil.isNotNull(nationality) && ObjectUtil.isNotEmpty(nationality)) { + nationality = StringUtils.trimAllWhitespace(nationality); + if ("中国".equals(nationality)) { + this.nationality = nationality + "籍"; + }else { + this.nationality = nationality; + } + } + } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/event/PushLogEvent.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/event/PushLogEvent.java new file mode 100644 index 000000000..2552c8fb1 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/event/PushLogEvent.java @@ -0,0 +1,37 @@ +package com.ruoyi.common.core.domain.event; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.ruoyi.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 推送日志对象 push_log + * + * @author ruoyi + * @date 2023-07-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("push_log") +public class PushLogEvent extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * + */ + @TableId(value = "id",type = IdType.AUTO) + private Long id; + /** + * 推送数据 + */ + private String pushData; + /** + * 返回结果 + */ + private String resultData; + +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/service/ConfigService.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/service/ConfigService.java index 280be13d4..fa02e268c 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/service/ConfigService.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/service/ConfigService.java @@ -1,5 +1,8 @@ package com.ruoyi.common.core.service; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + /** * 通用 参数配置服务 * diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/LoginType.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/LoginType.java index 875e4762e..c3103b2d5 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/LoginType.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/LoginType.java @@ -41,4 +41,5 @@ public enum LoginType { * 登录重试限制计数提示 */ final String retryLimitCount; + } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatableFilter.java b/ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatableFilter.java index c0069631e..3e9b8997d 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatableFilter.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatableFilter.java @@ -37,7 +37,7 @@ public class RepeatableFilter implements Filter { && StringUtils.startsWithIgnoreCase(request.getContentType(), MediaType.APPLICATION_JSON_VALUE) ) { requestWrapper = new RepeatedlyRequestWrapper((HttpServletRequest) request, response); } - if (!isSafe((HttpServletRequest) request)) { + if (!isSafe((HttpServletRequest) request,(HttpServletResponse) response)) { ((HttpServletResponse) response).setStatus(403); return; } @@ -59,7 +59,7 @@ public class RepeatableFilter implements Filter { * @param request * @return */ - private boolean isSafe(HttpServletRequest request) { + private boolean isSafe(HttpServletRequest request,HttpServletResponse response) { ConfigService sysConfigService = SpringUtils.getBean(ConfigService.class); String configValue = sysConfigService.getConfigValue("sys:preventing:hotlinking"); List strings = Arrays.asList(configValue.split(",")); @@ -71,7 +71,7 @@ public class RepeatableFilter implements Filter { if (referer == null || "".equals(referer)) { // 获取不到防盗链头部信息 -> 拦截 System.out.println("referer为空进行拦截"); - return false; + return true; } for (String white : strings) { if (white.contains("*.")) { diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/AesUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/AesUtil.java deleted file mode 100644 index ec8a97340..000000000 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/AesUtil.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.ruoyi.common.utils; - -import org.apache.commons.codec.binary.Base64; -import org.springframework.util.StringUtils; -import sun.misc.BASE64Decoder; -import sun.misc.BASE64Encoder; - -import javax.crypto.Cipher; -import javax.crypto.spec.IvParameterSpec; -import javax.crypto.spec.SecretKeySpec; -import java.nio.charset.StandardCharsets; - -public class AesUtil { - //密钥 (需要前端和后端保持一致) - private static final String KEY = "FFff123456.!-12s"; - private static final String IV = "FFff123456.!-12s"; - - /** - * 加密方法 - * @param data 要加密的数据 - * @param key 加密key - * @param iv 加密iv - * @return 加密的结果 - * @throws Exception - */ - public static String encrypt(String data, String key, String iv) throws Exception { - try { - - Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding"); - int blockSize = cipher.getBlockSize(); - byte[] dataBytes = data.getBytes(); - int plaintextLength = dataBytes.length; - if (plaintextLength % blockSize != 0) { - plaintextLength = plaintextLength + (blockSize - (plaintextLength % blockSize)); - } - byte[] plaintext = new byte[plaintextLength]; - System.arraycopy(dataBytes, 0, plaintext, 0, dataBytes.length); - SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES"); - IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes()); - cipher.init(Cipher.ENCRYPT_MODE, keyspec, ivspec); - byte[] encrypted = cipher.doFinal(plaintext); - return new Base64().encodeToString(encrypted); - - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } - - /** - * 解密方法 - * @param data 要解密的数据 - * @param key 解密key - * @param iv 解密iv - * @return 解密的结果 - * @throws Exception - */ - public static String desEncrypt(String data, String key, String iv) throws Exception { - try { - byte[] encrypted1 = new Base64().decode(data); - Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding"); - SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES"); - IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes()); - cipher.init(Cipher.DECRYPT_MODE, keyspec, ivspec); - byte[] original = cipher.doFinal(encrypted1); - String originalString = new String(original); - return originalString; - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } - - /** - * 使用默认的key和iv加密 - * @param data - * @return - * @throws Exception - */ - public static String encrypt(String data) throws Exception { - return encrypt(data, KEY, IV); - } - - /** - * 使用默认的key和iv解密 - * @param data - * @return - * @throws Exception - */ - public static String desEncrypt(String data) throws Exception { - return desEncrypt(data, KEY, IV); - } - - /** - * BASE64解密 - * @throws Exception - */ - public static String decryptBASE64(String key) throws Exception { - if (!StringUtils.isEmpty(key)){ - return new String(new BASE64Decoder().decodeBuffer(key), StandardCharsets.UTF_8); - } - return ""; - - } - - /** - * BASE64加密 - */ - public static String encryptBASE64(String key) throws Exception { - if (!StringUtils.isEmpty(key)) { - return (new BASE64Encoder()).encodeBuffer(key.getBytes(StandardCharsets.UTF_8)); - } - return null; - } -} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/OpenUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/OpenUtils.java index 52f9dd5d7..e7bae18df 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/OpenUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/OpenUtils.java @@ -1,5 +1,6 @@ package com.ruoyi.common.utils; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.crypto.Mode; import cn.hutool.crypto.Padding; @@ -51,14 +52,36 @@ public class OpenUtils { Object data = jsonObject1.get("data"); String message = jsonObject1.getStr("message"); if (code==200){ - if (ObjectUtil.isNull(data)){ - return R.fail("暂未获取到当前"+cardId+"人才认定信息"); + if (ObjectUtil.isNull(data) || ObjectUtil.isEmpty(data)){ + return R.fail("暂未获取到当前"+cardId+"人才认定信息,如有疑问请联系客服人员! 电话:19940594954"); }else { GaoXinCardInfo gaoXinCardInfo = JsonUtils.parseObject(JSONUtil.toJsonPrettyStr(data), GaoXinCardInfo.class); + //判断值是否为空 + if (ObjectUtil.isEmpty(gaoXinCardInfo.getName())){ + return R.fail("获取人才认定数据接口返回异常,异常信息:姓名为空!请联系客服人员! 电话:19940594954"); + }else if (ObjectUtil.isEmpty(gaoXinCardInfo.getCard_id())){ + return R.fail("获取人才认定数据接口返回异常,异常信息:身份证为空!请联系客服人员! 电话:19940594954"); + }else if (ObjectUtil.isEmpty(gaoXinCardInfo.getSex())){ + return R.fail("获取人才认定数据接口返回异常,异常信息:性别为空!请联系客服人员! 电话:19940594954"); + }else if (ObjectUtil.isEmpty(gaoXinCardInfo.getNationality())){ + return R.fail("获取人才认定数据接口返回异常,异常信息:国籍为空!请联系客服人员! 电话:19940594954"); + }else if (ObjectUtil.isEmpty(gaoXinCardInfo.getEducation())){ + return R.fail("获取人才认定数据接口返回异常,异常信息:学历为空!请联系客服人员! 电话:19940594954"); + }else if (ObjectUtil.isEmpty(gaoXinCardInfo.getDistrict())){ + return R.fail("获取人才认定数据接口返回异常,异常信息:单位区域为空!请联系客服人员! 电话:19940594954"); + }else if (ObjectUtil.isEmpty(gaoXinCardInfo.getPhone())){ + return R.fail("获取人才认定数据接口返回异常,异常信息:手机号为空!请联系客服人员! 电话:19940594954"); + }else if (ObjectUtil.isEmpty(gaoXinCardInfo.getCompany_name())){ + return R.fail("获取人才认定数据接口返回异常,异常信息:公司名称为空!请联系客服人员! 电话:19940594954"); + }else if (ObjectUtil.isEmpty(gaoXinCardInfo.getType())){ + return R.fail("获取人才认定数据接口返回异常,异常信息:人才类型为空!请联系客服人员! 电话:19940594954"); + } + gaoXinCardInfo.setType(gaoXinCardInfo.getType()); + gaoXinCardInfo.setNationality(gaoXinCardInfo.getNationality()); return R.ok(gaoXinCardInfo); } }else if (code==400){ - return R.fail(message); + return R.fail("获取人才认定数据接口返回异常,异常信息:"+message+"请联系客服人员! 电话:19940594954"); }else { return R.fail("人才认定接口请求未知异常"); } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java index 5e6833714..ca152405a 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java @@ -171,6 +171,15 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils { return StrUtil.toUnderlineCase(str); } + /** + * 字母转大写 + * @param str + * @return + */ + public static String toUpperCase(String str) { + return str.toUpperCase(); + } + /** * 是否包含字符串 * diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/MyFileUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/MyFileUtils.java index d940f1dcf..190e04ae4 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/MyFileUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/MyFileUtils.java @@ -100,6 +100,7 @@ public class MyFileUtils extends FileUtils conn.setRequestMethod("GET");//POST //防止屏蔽程序抓取而返回403错误 conn.setRequestProperty("User-Agent", "Mozilla/5.0 (compatible; MSIE 5.0; Windows NT; DigExt)"); + conn.setRequestProperty("Referer","https://rcaj.cdhtgycs.cn"); conn.setConnectTimeout(5000); conn.setReadTimeout(5000); int responseCode = conn.getResponseCode(); diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java index 8459e1478..c4d25e480 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java @@ -54,9 +54,9 @@ public class ExcelUtil { * @param isValidate 是否 Validator 检验 默认为是 * @return 转换后集合 */ - public static ExcelResult importExcel(InputStream is, Class clazz, boolean isValidate) { + public static ExcelResult importExcel(InputStream is, Class clazz, boolean isValidate,Integer num) { DefaultExcelListener listener = new DefaultExcelListener<>(isValidate); - EasyExcel.read(is, clazz, listener).sheet().doRead(); + EasyExcel.read(is, clazz, listener).sheet().headRowNumber(num).doRead(); return listener.getExcelResult(); } diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java index 873facc3b..ea3a0d3d3 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java @@ -74,7 +74,7 @@ public class TestDemoController extends BaseController { @SaCheckPermission("demo:demo:import") @PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public R importData(@RequestPart("file") MultipartFile file) throws Exception { - ExcelResult excelResult = ExcelUtil.importExcel(file.getInputStream(), TestDemoImportVo.class, true); + ExcelResult excelResult = ExcelUtil.importExcel(file.getInputStream(), TestDemoImportVo.class, true,0); List volist = excelResult.getList(); List list = BeanUtil.copyToList(volist, TestDemo.class); iTestDemoService.saveBatch(list); diff --git a/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application.yml b/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application.yml index 1b729ef1b..a66dada79 100644 --- a/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application.yml +++ b/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application.yml @@ -41,5 +41,5 @@ spring.boot.admin.client: url: http://localhost:9090/admin instance: service-host-type: IP - username: ruoyi - password: 123456 + username: gaoxin + password: 1234Qwer@ diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/WebMvcConfig.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/WebMvcConfig.java index 0be6ba663..7bacf3080 100644 --- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/WebMvcConfig.java +++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/WebMvcConfig.java @@ -25,4 +25,4 @@ public class WebMvcConfig implements WebMvcConfigurer { registry.addInterceptor(cookieInterceptor).addPathPatterns("/**"); } -} \ No newline at end of file +} diff --git a/ruoyi-file/pom.xml b/ruoyi-file/pom.xml index 807c6da27..6a99cc729 100644 --- a/ruoyi-file/pom.xml +++ b/ruoyi-file/pom.xml @@ -5,7 +5,7 @@ ruoyi-vue-plus com.ruoyi - 4.7.0 + 4.8.0 4.0.0 diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java index a8697d27d..ceb1de4fb 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java @@ -39,9 +39,6 @@ public class ResourcesConfig implements WebMvcConfigurer { registry.addInterceptor(new PlusWebInvokeTimeInterceptor()); } - /* @Override - public void addResourceHandlers(ResourceHandlerRegistry registry) { - }*/ /** * 跨域配置 @@ -83,8 +80,9 @@ public class ResourcesConfig implements WebMvcConfigurer { public void addCorsMappings(CorsRegistry registry) { // 设置允许跨域的路由 registry.addMapping(localFilePrefix + "/**") - // 设置允许跨域请求的域名 .allowedOrigins("*") + .allowCredentials(true) + .maxAge(3000) // 设置允许的方法 .allowedMethods("GET"); } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/PlusWebInvokeTimeInterceptor.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/PlusWebInvokeTimeInterceptor.java index 78bffab4f..71498ed14 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/PlusWebInvokeTimeInterceptor.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/PlusWebInvokeTimeInterceptor.java @@ -3,6 +3,7 @@ package com.ruoyi.framework.interceptor; import cn.hutool.core.io.IoUtil; import cn.hutool.core.map.MapUtil; import com.alibaba.ttl.TransmittableThreadLocal; +import com.ruoyi.common.core.service.ConfigService; import com.ruoyi.common.filter.RepeatedlyRequestWrapper; import com.ruoyi.common.utils.JsonUtils; import com.ruoyi.common.utils.StringUtils; @@ -34,6 +35,7 @@ public class PlusWebInvokeTimeInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { +// response.sendRedirect("https://dbxqtalents.cn/"); if (!prodProfile.equals(SpringUtils.getActiveProfile())) { String url = request.getMethod() + " " + request.getRequestURI(); @@ -59,6 +61,10 @@ public class PlusWebInvokeTimeInterceptor implements HandlerInterceptor { invokeTimeTL.set(stopWatch); stopWatch.start(); } + //判断系统是否在维护中 + ConfigService sysConfigService = SpringUtils.getBean(ConfigService.class); + //系统升级提示 + sysConfigService.selectConfigByConfigKey("system:maintenance:prompt"); return true; } diff --git a/ruoyi-rabbitmq/pom.xml b/ruoyi-rabbitmq/pom.xml index 1f8f03be9..917346d38 100644 --- a/ruoyi-rabbitmq/pom.xml +++ b/ruoyi-rabbitmq/pom.xml @@ -5,7 +5,7 @@ ruoyi-vue-plus com.ruoyi - 4.7.0 + 4.8.0 4.0.0 jar diff --git a/ruoyi-sms/src/main/java/com/ruoyi/sms/entity/SmsResult.java b/ruoyi-sms/src/main/java/com/ruoyi/sms/entity/SmsResult.java new file mode 100644 index 000000000..89c39b403 --- /dev/null +++ b/ruoyi-sms/src/main/java/com/ruoyi/sms/entity/SmsResult.java @@ -0,0 +1,31 @@ +package com.ruoyi.sms.entity; + +import lombok.Builder; +import lombok.Data; + +/** + * 上传返回体 + * + * @author Lion Li + */ +@Data +@Builder +public class SmsResult { + + /** + * 是否成功 + */ + private boolean isSuccess; + + /** + * 响应消息 + */ + private String message; + + /** + * 实际响应体 + *

+ * 可自行转换为 SDK 对应的 SendSmsResponse + */ + private String response; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/PushLog.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/PushLog.java new file mode 100644 index 000000000..ca4cad2d5 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/PushLog.java @@ -0,0 +1,39 @@ +package com.ruoyi.system.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serializable; +import java.util.Date; +import java.math.BigDecimal; + +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 推送日志对象 push_log + * + * @author ruoyi + * @date 2023-07-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("push_log") +public class PushLog extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * + */ + @TableId(value = "id",type = IdType.AUTO) + private Long id; + /** + * 推送数据 + */ + private String pushData; + /** + * 返回结果 + */ + private String resultData; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/HousesReviewBo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/HousesReviewBo.java index da9542436..854717bbd 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/HousesReviewBo.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/HousesReviewBo.java @@ -99,7 +99,7 @@ public class HousesReviewBo extends BaseEntity { /** * 资格预申请时间 */ - @NotBlank(message = "资格预申请时间不能为空", groups = { AddGroup.class, EditGroup.class }) +// @NotBlank(message = "资格预申请时间不能为空", groups = { AddGroup.class, EditGroup.class }) private String qualificationPreApplyTime; /** diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/PushLogBo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/PushLogBo.java new file mode 100644 index 000000000..fcc31f4c1 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/PushLogBo.java @@ -0,0 +1,43 @@ +package com.ruoyi.system.domain.bo; + +import com.ruoyi.common.core.validate.AddGroup; +import com.ruoyi.common.core.validate.EditGroup; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + +import java.util.Date; + +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 推送日志业务对象 push_log + * + * @author ruoyi + * @date 2023-07-20 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class PushLogBo extends BaseEntity { + + /** + * + */ + @NotNull(message = "不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 推送数据 + */ + @NotBlank(message = "推送数据不能为空", groups = { AddGroup.class, EditGroup.class }) + private String pushData; + + /** + * 返回结果 + */ + @NotBlank(message = "返回结果不能为空", groups = { AddGroup.class, EditGroup.class }) + private String resultData; + + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/HousesReviewVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/HousesReviewVo.java index af92c615d..4295e8a8f 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/HousesReviewVo.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/HousesReviewVo.java @@ -38,6 +38,9 @@ public class HousesReviewVo implements Serializable { private Long id; private String step; + + @ExcelProperty(value = "序号") + private String number; /** * 证件类型 */ diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/PushLogVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/PushLogVo.java new file mode 100644 index 000000000..22f189071 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/PushLogVo.java @@ -0,0 +1,37 @@ +package com.ruoyi.system.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.ruoyi.common.annotation.ExcelDictFormat; +import com.ruoyi.common.convert.ExcelDictConvert; +import lombok.Data; +import java.util.Date; + + + +/** + * 推送日志视图对象 push_log + * + * @author ruoyi + * @date 2023-07-20 + */ +@Data +@ExcelIgnoreUnannotated +public class PushLogVo { + + private static final long serialVersionUID = 1L; + + /** + * 推送数据 + */ + @ExcelProperty(value = "推送数据") + private String pushData; + + /** + * 返回结果 + */ + @ExcelProperty(value = "返回结果") + private String resultData; + + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/PushLogMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/PushLogMapper.java new file mode 100644 index 000000000..83ff1ca2d --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/PushLogMapper.java @@ -0,0 +1,15 @@ +package com.ruoyi.system.mapper; + +import com.ruoyi.system.domain.PushLog; +import com.ruoyi.system.domain.vo.PushLogVo; +import com.ruoyi.common.core.mapper.BaseMapperPlus; + +/** + * 推送日志Mapper接口 + * + * @author ruoyi + * @date 2023-07-20 + */ +public interface PushLogMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/IPushLogService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/IPushLogService.java new file mode 100644 index 000000000..9b953475c --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/IPushLogService.java @@ -0,0 +1,45 @@ +package com.ruoyi.system.service; + +import com.ruoyi.common.core.domain.event.PushLogEvent; +import com.ruoyi.system.domain.vo.PushLogVo; +import com.ruoyi.system.domain.bo.PushLogBo; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 推送日志Service接口 + * + * @author ruoyi + * @date 2023-07-20 + */ +public interface IPushLogService { + + /** + * 查询推送日志 + */ + PushLogVo queryById(Long id); + + /** + * 查询推送日志列表 + */ + TableDataInfo queryPageList(PushLogBo bo, PageQuery pageQuery); + + /** + * 查询推送日志列表 + */ + List queryList(PushLogBo bo); + + + /** + * 修改推送日志 + */ + Boolean updateByBo(PushLogBo bo); + + /** + * 校验并批量删除推送日志信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/IUserService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/IUserService.java index 2d2973614..b09d966b0 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/IUserService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/IUserService.java @@ -57,5 +57,4 @@ public interface IUserService { */ int resetUserPwd(String userName, String password); - R getUserCandidateInfo(String cardId) throws Exception; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java index c1d30516a..8e3c15a30 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java @@ -93,8 +93,6 @@ public class SysLoginService { SysUser user = loadSysUserByUsername(username); checkLogin(LoginType.PASSWORD, username, () -> !BCrypt.checkpw(password, user.getPassword())); // 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了 - LoginUser loginUser = buildLoginUser(user); - // 此处可根据登录用户的数据不同 自行创建 loginUser LoginUser loginUser = buildLoginSysUser(user); // 生成token LoginHelper.loginByDevice(loginUser, DeviceType.PC); @@ -110,10 +108,6 @@ public class SysLoginService { checkLogin(LoginType.SMS, user.getUserName(), () -> !validateSmsCode(phonenumber, smsCode,CacheConstants.CAPTCHA_CODE_KEY)); // 此处可根据登录用户的数据不同 自行创建 loginUser LoginUser loginUser = buildLoginSysUser(user); - - checkLogin(LoginType.SMS, user.getUserName(), () -> !validateSmsCode(phonenumber, smsCode)); - // 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了 - LoginUser loginUser = buildLoginUser(user); // 生成token LoginHelper.loginByDevice(loginUser, DeviceType.APP); @@ -358,7 +352,7 @@ public class SysLoginService { } else { // 未达到规定错误次数 recordLogininfor(username, loginFail, MessageUtils.message(loginType.getRetryLimitCount(), errorNumber)); - throw new UserException(loginType.getRetryLimitCount(), errorNumber); + throw new UserException(loginType.getRetryLimitCount(), errorNumber,maxRetryCount-errorNumber); } } // 登录成功 清空错误次数 diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/BuyHousesServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/BuyHousesServiceImpl.java index ec8b9fe01..223bb7527 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/BuyHousesServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/BuyHousesServiceImpl.java @@ -156,7 +156,7 @@ public class BuyHousesServiceImpl implements IBuyHousesService { private LambdaQueryWrapper buildQueryWrapper(BuyHousesBo bo) { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - if (ObjectUtil.isNotNull(bo.getIds())){ + if (ObjectUtil.isNotNull(bo.getIds()) && bo.getIds().length>0){ lqw.in(BuyHouses::getId,bo.getIds()); } lqw.eq(ObjectUtil.isNotNull(bo.getId()), BuyHouses::getId, bo.getId()); @@ -227,12 +227,12 @@ public class BuyHousesServiceImpl implements IBuyHousesService { lqw.eq(StringUtils.isNotBlank(bo.getSocialSecurityUrl()), BuyHouses::getSocialSecurityUrl, bo.getSocialSecurityUrl()); lqw.eq(StringUtils.isNotBlank(bo.getStatus()), BuyHouses::getStatus, bo.getStatus()); lqw.eq(bo.getUserId() != null, BuyHouses::getUserId, bo.getUserId()); - lqw.eq(StringUtils.isNotBlank(bo.getProcessStatus()),BuyHouses::getProcessStatus,bo.getProcessStatus()); lqw.ge(StringUtils.isBlank(bo.getProcessStatus()),BuyHouses::getProcessStatus,Constants.SUCCEED); - lqw.and(StringUtils.isNotBlank(bo.getUserName()),t ->t.like(BuyHouses::getUserName,bo.getUserName()) - .or().like(BuyHouses::getPhone,bo.getUserName()) - .or().like(BuyHouses::getCardId,bo.getUserName())); + lqw.and(StringUtils.isNotBlank(bo.getUserName()),t -> + t.like(BuyHouses::getUserName,bo.getUserName()) + .or().like(BuyHouses::getPhone,bo.getUserName()) + .or().like(BuyHouses::getCardId,bo.getUserName())); lqw.eq(StringUtils.isNotBlank(bo.getDistrict()),BuyHouses::getDistrict,bo.getDistrict()); lqw.like(StringUtils.isNotBlank(bo.getType()),BuyHouses::getType,bo.getType()); @@ -489,7 +489,7 @@ public class BuyHousesServiceImpl implements IBuyHousesService { R rInfo = OpenUtils.getGaoXinCardInfo(buyHouses.getCardId()); GaoXinCardInfo gaoXinCardInfo = JsonUtils.parseObject(JSONUtil.toJsonPrettyStr(rInfo.getData()), GaoXinCardInfo.class); BuyHouses buyHousesDto = new BuyHouses(); - buyHousesDto.setCardId(gaoXinCardInfo.getCard_id()); + buyHousesDto.setCardId(StringUtils.toUpperCase(gaoXinCardInfo.getCard_id())); String nationality = gaoXinCardInfo.getNationality(); if ("中国".contains(nationality)){ buyHousesDto.setNationality("中国籍"); @@ -532,33 +532,6 @@ public class BuyHousesServiceImpl implements IBuyHousesService { hashMap.put("processKey","apply_house"); hashMap.put("businessId",null); return R.ok("获取成功",hashMap); - - - /* HttpResponse execute = HttpRequest.get(URL) - .form("cardId",cardId) - .timeout(5000) - .execute(); - JSONObject entries = JSONUtil.parseObj(execute.body()); - String code = String.valueOf(entries.get("code")); - if (ObjectUtil.isNull(code)){ - return R.fail("获取人才信息失败"); - }else { - if ("666666".equals(code)){ - BuyHouses buyHouses = baseMapper.selectOne(new LambdaQueryWrapper<>(BuyHouses.class).eq(BuyHouses::getCardId, cardId)); - if (ObjectUtil.isNotNull(buyHouses)){ - hashMap.put("status",buyHouses.getProcessStatus()); - hashMap.put("processKey",buyHouses.getProcessKey()); - hashMap.put("businessId",buyHouses.getId()); - return R.ok("获取成功",hashMap); - } - hashMap.put("status",Constants.SUBMIT); - hashMap.put("processKey","apply_house"); - hashMap.put("businessId",null); - return R.ok("获取成功",hashMap); - }else { - return R.fail("暂无资格"); - } - }*/ } /** @@ -1325,7 +1298,7 @@ public class BuyHousesServiceImpl implements IBuyHousesService { public void excelZip(String id){ BuyHousesBo bo =new BuyHousesBo(); if (ObjectUtil.isNotNull(id)){ - bo.setId(Long.valueOf(id)); + bo.setId(Long.valueOf(id)); } LambdaQueryWrapper lqw = buildQueryWrapper(bo); List buyHousesVoList = baseMapper.selectVoList(lqw); @@ -1467,9 +1440,9 @@ public class BuyHousesServiceImpl implements IBuyHousesService { Map map = WorkUtils.getInfoToMap("buy_houses",id); String virtualcode = String.valueOf(map.get("virtualcode")); map.put("virtualcode", virtualcode == "3" ? "010" : "009"); - String cardType = String.valueOf(map.get("cardType")); + String cardType = String.valueOf(map.get("nationality")); map.put("cardType", "中国籍".equals(cardType) ? 1 : 4); - Object createTime = map.get("createTime"); + Object createTime = map.get("passTime"); SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH); DateFormat cst = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date format = sdf.parse(createTime.toString()); @@ -1495,7 +1468,6 @@ public class BuyHousesServiceImpl implements IBuyHousesService { map.put("cardId",buyHouses.getCardId()); map.put("cancelTime", DateUtils.dateTime("yyyy-MM-dd HH:mm:ss")); map.put("note","人才主动撤销");//备注 - map.put("status", "00N"); System.out.println("JSONUtil.toJsonPrettyStr(map) = " + JSONUtil.toJsonPrettyStr(map)); housingConstructionBureauPushDto.openUrl("https://jcfw.cdzjryb.com/CCSRegistryCenter/rest",map,"254");//正式 return null; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/HousesReviewServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/HousesReviewServiceImpl.java index b106369f2..3658e6d62 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/HousesReviewServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/HousesReviewServiceImpl.java @@ -117,7 +117,7 @@ public class HousesReviewServiceImpl implements IHousesReviewService { private LambdaQueryWrapper buildQueryWrapper3(HousesReviewBo bo) { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - if (ObjectUtil.isNotNull(bo.getIds())){ + if (ObjectUtil.isNotNull(bo.getIds()) && bo.getIds().length>0){ lqw.in(HousesReview::getId,bo.getIds()); } lqw.and(StringUtils.isNotBlank(bo.getName()),t -> diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/PushLogServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/PushLogServiceImpl.java new file mode 100644 index 000000000..8c5d0fab9 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/PushLogServiceImpl.java @@ -0,0 +1,109 @@ +package com.ruoyi.system.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.ruoyi.common.core.domain.event.PushLogEvent; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.domain.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.context.event.EventListener; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; +import com.ruoyi.system.domain.bo.PushLogBo; +import com.ruoyi.system.domain.vo.PushLogVo; +import com.ruoyi.system.domain.PushLog; +import com.ruoyi.system.mapper.PushLogMapper; +import com.ruoyi.system.service.IPushLogService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 推送日志Service业务层处理 + * + * @author ruoyi + * @date 2023-07-20 + */ +@RequiredArgsConstructor +@Service +public class PushLogServiceImpl implements IPushLogService { + + private final PushLogMapper baseMapper; + + /** + * 查询推送日志 + */ + @Override + public PushLogVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 查询推送日志列表 + */ + @Override + public TableDataInfo queryPageList(PushLogBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询推送日志列表 + */ + @Override + public List queryList(PushLogBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(PushLogBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getPushData()), PushLog::getPushData, bo.getPushData()); + lqw.eq(StringUtils.isNotBlank(bo.getResultData()), PushLog::getResultData, bo.getResultData()); + return lqw; + } + + /** + * 新增推送日志 + */ + @Async + @EventListener + public void insertByBo(PushLogEvent event) { + PushLog add = BeanUtil.toBean(event, PushLog.class); + baseMapper.insert(add); + } + + /** + * 修改推送日志 + */ + @Override + public Boolean updateByBo(PushLogBo bo) { + PushLog update = BeanUtil.toBean(bo, PushLog.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(PushLog entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除推送日志 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SubscribeExportServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SubscribeExportServiceImpl.java index 9bc9bbf17..d03b3a27c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SubscribeExportServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SubscribeExportServiceImpl.java @@ -57,7 +57,9 @@ public class SubscribeExportServiceImpl implements ISubscribeExportService { */ @Override public TableDataInfo queryPageList(SubscribeExportBo bo, PageQuery pageQuery) { - bo.setUserId(LoginHelper.getUserId().toString()); + if (!LoginHelper.isAdmin()){ + bo.setUserId(LoginHelper.getUserId().toString()); + } bo.setExportStatus("1"); LambdaQueryWrapper lqw = buildQueryWrapper(bo); lqw.orderByDesc(SubscribeExport::getCreateTime); @@ -78,6 +80,7 @@ public class SubscribeExportServiceImpl implements ISubscribeExportService { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.eq(StringUtils.isNotBlank(bo.getPath()), SubscribeExport::getPath, bo.getPath()); + lqw.eq(StringUtils.isNotBlank(bo.getExportStatus()), SubscribeExport::getExportStatus, bo.getExportStatus()); lqw.eq(StringUtils.isNotBlank(bo.getUserId()), SubscribeExport::getUserId, bo.getUserId()); lqw.eq(StringUtils.isNotBlank(bo.getProcessKey()), SubscribeExport::getProcessKey, bo.getProcessKey()); return lqw; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java index e47be3f15..e94366391 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java @@ -6,11 +6,13 @@ import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.constant.CacheNames; +import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.service.ConfigService; import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.helper.LoginHelper; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.redis.CacheUtils; import com.ruoyi.common.utils.spring.SpringUtils; @@ -21,7 +23,10 @@ import lombok.RequiredArgsConstructor; import org.springframework.cache.annotation.CachePut; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; +import org.springframework.web.servlet.ModelAndView; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.Arrays; import java.util.List; import java.util.Map; @@ -69,12 +74,11 @@ public class SysConfigServiceImpl implements ISysConfigService, ConfigService { */ @Override public void selectConfigByConfigKey(String key) { - SysConfig aTrue = baseMapper.selectOne(new LambdaQueryWrapper<>(SysConfig.class) - .eq(SysConfig::getConfigKey, key) - .eq(SysConfig::getConfigValue, "true")); - if (ObjectUtil.isNotNull(aTrue)){ - throw new ServiceException(aTrue.getRemark()); + String s = selectConfigByKey(key); + if ("true".equals(s)){ + throw new ServiceException("系统升级维护中!感谢您的等待!"); } + System.out.println("s = " + s); } /** diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java index 6aa308afa..8af6cabdb 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java @@ -23,7 +23,6 @@ import com.ruoyi.system.mapper.SysDeptMapper; import com.ruoyi.system.mapper.SysRoleMapper; import com.ruoyi.system.mapper.SysUserMapper; import com.ruoyi.system.service.ISysDeptService; -import com.ruoyi.work.service.IWorkSysDeptService; import lombok.RequiredArgsConstructor; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; @@ -40,7 +39,7 @@ import java.util.List; */ @RequiredArgsConstructor @Service -public class SysDeptServiceImpl implements ISysDeptService, DeptService, IWorkSysDeptService { +public class SysDeptServiceImpl implements ISysDeptService, DeptService { private final SysDeptMapper baseMapper; private final SysRoleMapper roleMapper; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java index 076e59be6..aad38645c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java @@ -26,7 +26,6 @@ import com.ruoyi.system.mapper.SysRoleMapper; import com.ruoyi.system.mapper.SysRoleMenuMapper; import com.ruoyi.system.mapper.SysUserRoleMapper; import com.ruoyi.system.service.ISysRoleService; -import com.ruoyi.work.service.IWorkSysRoleService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -40,7 +39,7 @@ import java.util.*; */ @RequiredArgsConstructor @Service -public class SysRoleServiceImpl implements ISysRoleService, IWorkSysRoleService { +public class SysRoleServiceImpl implements ISysRoleService{ private final SysRoleMapper baseMapper; private final SysRoleMenuMapper roleMenuMapper; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java index d8c24c690..fd4dcc19f 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -27,7 +27,6 @@ import com.ruoyi.system.domain.SysUserPost; import com.ruoyi.system.domain.SysUserRole; import com.ruoyi.system.mapper.*; import com.ruoyi.system.service.ISysUserService; -import com.ruoyi.work.service.IWorkSysUserService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.cache.annotation.Cacheable; @@ -46,7 +45,7 @@ import java.util.Map; @Slf4j @RequiredArgsConstructor @Service -public class SysUserServiceImpl implements ISysUserService, UserService, IWorkSysUserService { +public class SysUserServiceImpl implements ISysUserService, UserService{ private final SysUserMapper baseMapper; private final SysDeptMapper deptMapper; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserServiceImpl.java index f5d3e6bdf..5ff753bc7 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserServiceImpl.java @@ -4,8 +4,6 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.http.HttpRequest; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.ruoyi.common.core.domain.R; -import com.ruoyi.common.core.domain.entity.SysUser; -import com.ruoyi.common.utils.AesUtil; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.domain.PageQuery; @@ -144,22 +142,4 @@ public class UserServiceImpl implements IUserService { .set(User::getPassword, password) .eq(User::getLoginName, userName)); } - - @Override - public R getUserCandidateInfo(String cardId) throws Exception { - LinkedHashMap hashMap = new LinkedHashMap<>(); - hashMap.put("loginName",AesUtil.decryptBASE64("18716148446")); - hashMap.put("password",AesUtil.decryptBASE64("1234Qwer")); - try { - HttpRequest.post("https://gx.chengdutalent.cn:8010/user/login") - .form(hashMap) - .timeout(20000) - .execute().body(); - } catch (Exception e) { - throw new RuntimeException("调用接口超时"); - } - //调用高新的接口 - return null; - - } } diff --git a/ruoyi-system/src/main/resources/mapper/system/PushLogMapper.xml b/ruoyi-system/src/main/resources/mapper/system/PushLogMapper.xml new file mode 100644 index 000000000..67d766faa --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/PushLogMapper.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index e73e715db..9945adf9f 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -4,7 +4,7 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -24,6 +24,7 @@ + @@ -65,6 +66,7 @@ u.create_by, u.create_time, u.remark, + u.properties, d.dept_id, d.parent_id, d.ancestors, @@ -85,7 +87,7 @@