From 65816321c28dab1f43d0563af67dbcbad2c5bdca Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期一, 22 五月 2023 18:15:39 +0800 Subject: [PATCH] demo补完 --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/CodeFactoryUtil.java | 81 ++++++++++++++++++++++++---------------- 1 files changed, 49 insertions(+), 32 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 288626f..5d64ef4 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,11 +2,17 @@ -import com.ruoyi.common.core.utils.DateUtils; +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 org.springframework.stereotype.Component; import java.security.SecureRandom; import java.util.Date; import java.util.Random; +import java.util.concurrent.TimeUnit; /** * @author jqs34 @@ -15,7 +21,18 @@ * @date 2023年02月13日 * @version: 1.0 */ +@Component public class CodeFactoryUtil { + + + //静态住入到自己的类中 + private static RedisService redisService; + + //将静态属性以入参(形参)的方式传入一个方法中,然后将此方法通过 @Autowired 注入到Spring容器中 + @Autowired + public void setService(RedisService redisService) { + CodeFactoryUtil.redisService = redisService; + } /** * APP用户编码 @@ -28,9 +45,9 @@ private static final String SHOP_PREFIX = "HRT_S"; /** - * 订单前缀 + * 商户订单前缀 */ - private static final String ORDER_PREFIX = "BO"; + private static final String ORDER_PREFIX = "SC"; /** * 退款订单前缀 @@ -64,41 +81,41 @@ return toFillZeroCode(prefix, maxLength, shopId); } - /** - * 获取会员编号 - * @param userId - * @return - */ - public static String getMemberNo(Long userId) { - String prefix = APP_USER_PREFIX; - return toFillZeroCode(prefix, maxLength, userId); + public static String getShopOrderNo() { + String orderNo; + String timeTemp = DateFormatUtils.format(new Date(), "yyyyMMdd"); + String prefix = ORDER_PREFIX + timeTemp; + String suffixNumber = getSuffixNumber(prefix); + orderNo = prefix + suffixNumber; + return orderNo; } - /** - * 获取订单编号 - * - * @param userId - * @return - */ - public static String getOrderNo(Long userId) { - - String prefix = DateUtils.parseDateToStr( "yyyyMMddHHmmss",new Date()); - prefix = ORDER_PREFIX + prefix; - return toFillZeroCode(prefix, maxLength, userId); + 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; } - - - /** - * 获取用户编号 - * - * @param userId - * @return - */ - public static String getAppUserNo(Long userId) { - return toFillZeroCode(APP_USER_PREFIX, 9, userId); + 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