From 7b005ca364613c9738dbc66f3e4fe3fb7bec043d Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期三, 17 五月 2023 17:02:30 +0800 Subject: [PATCH] demo补完 --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/CodeFactoryUtil.java | 44 ++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 42 insertions(+), 2 deletions(-) diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/CodeFactoryUtil.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/CodeFactoryUtil.java index 3e8d6fd..c060fc6 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/CodeFactoryUtil.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/CodeFactoryUtil.java @@ -2,13 +2,16 @@ +import com.ruoyi.common.redis.service.RedisService; import org.apache.commons.lang3.time.DateFormatUtils; import org.apache.commons.lang3.time.DateUtils; import org.apache.poi.ss.usermodel.DateUtil; +import org.springframework.beans.factory.annotation.Autowired; import java.security.SecureRandom; import java.util.Date; import java.util.Random; +import java.util.concurrent.TimeUnit; /** * @author jqs34 @@ -18,6 +21,16 @@ * @version: 1.0 */ public class CodeFactoryUtil { + + + //静态住入到自己的类中 + private static RedisService redisService; + + //将静态属性以入参(形参)的方式传入一个方法中,然后将此方法通过 @Autowired 注入到Spring容器中 + @Autowired + public void setService(RedisService redisService) { + CodeFactoryUtil.redisService = redisService; + } /** * APP用户编码 @@ -69,11 +82,38 @@ public static String getShopOrderNo() { String orderNo; String timeTemp = DateFormatUtils.format(new Date(), "yyyyMMdd"); - String suffixNumber = "0001"; - orderNo = ORDER_PREFIX + timeTemp + suffixNumber; + String prefix = ORDER_PREFIX + timeTemp; + String suffixNumber = getSuffixNumber(prefix); + orderNo = prefix + suffixNumber; return orderNo; } + private static String getSuffixNumber(String prefix){ + Integer suffixNumberInt; + String suffixNumber = "0001"; + if(redisService.hasKey(prefix)){ + suffixNumberInt = redisService.getCacheObject(prefix); + suffixNumber = toFillZeroSuffixNumber(suffixNumberInt); + suffixNumberInt = suffixNumberInt + 1; + redisService.setCacheObject(prefix, suffixNumberInt, 24L, TimeUnit.HOURS); + }else{ + redisService.setCacheObject(prefix, 1, 24L, TimeUnit.HOURS); + } + return suffixNumber; + } + + private static String toFillZeroSuffixNumber(Integer suffixNumberInt){ + String suffixNumberStr = suffixNumberInt.toString(); + int length = suffixNumberStr.length(); + int fillLength = 4 - length; + StringBuilder idsbs = new StringBuilder(); + for (int i = 0; i < fillLength; i++) { + idsbs.append("0"); + } + return idsbs.append(suffixNumberStr).toString(); + } + + /** * 0补位 * -- Gitblit v1.7.1