From 07d3d70cf66821c3b33fc0dff73899cbd7fe969a Mon Sep 17 00:00:00 2001 From: jishenghua <752718920@qq.com> Date: Wed, 9 Jul 2025 17:19:48 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=9A=E8=BF=87redis=E6=9D=A5=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E5=8D=95=E6=8D=AE=E7=9A=84=E5=8D=95=E5=8F=B7=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/jsh/erp/service/DepotHeadService.java | 15 +++++++++++++-- .../java/com/jsh/erp/service/RedisService.java | 10 ++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/DepotHeadService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/DepotHeadService.java index 0cdb76f1..512909e8 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/DepotHeadService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/DepotHeadService.java @@ -73,6 +73,8 @@ public class DepotHeadService { @Resource private SequenceService sequenceService; @Resource + private RedisService redisService; + @Resource DepotItemMapperEx depotItemMapperEx; @Resource private LogService logService; @@ -1107,6 +1109,17 @@ public class DepotHeadService { HttpServletRequest request) throws Exception { /**处理单据主表数据*/ DepotHead depotHead = JSONObject.parseObject(beanJson, DepotHead.class); + //判断用户是否已经登录过,登录过不再处理 + User userInfo=userService.getCurrentUser(); + //通过redis去校验重复 + String keyNo = userInfo.getLoginName() + "_" + depotHead.getNumber(); + String keyValue = redisService.getCacheObject(keyNo); + if(StringUtil.isNotEmpty(keyValue)) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_BILL_NUMBER_EXIST_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_BILL_NUMBER_EXIST_MSG)); + } else { + redisService.storageKeyWithTime(keyNo, depotHead.getNumber(), 10L); + } //校验单号是否重复 if(checkIsBillNumberExist(0L, depotHead.getNumber())>0) { throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_BILL_NUMBER_EXIST_CODE, @@ -1125,8 +1138,6 @@ public class DepotHeadService { String.format(ExceptionConstants.DEPOT_HEAD_ACCOUNT_FAILED_MSG)); } } - //判断用户是否已经登录过,登录过不再处理 - User userInfo=userService.getCurrentUser(); depotHead.setCreator(userInfo==null?null:userInfo.getId()); depotHead.setCreateTime(new Timestamp(System.currentTimeMillis())); if(StringUtil.isEmpty(depotHead.getStatus())) { diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/RedisService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/RedisService.java index be78f094..4ccd1b2b 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/RedisService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/RedisService.java @@ -104,6 +104,16 @@ public class RedisService { redisTemplate.opsForValue().set(verifyKey, codeNum, BusinessConstants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES); } + /** + * 带有效时间缓存数据 + * @param key + * @param value + * @param time 单位秒 + */ + public void storageKeyWithTime(String key, String value, Long time) { + redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); + } + /** * 删除单个对象 *