From beeda8df0023376dbb2021148a021731dc4aedb0 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期日, 06 八月 2023 11:29:10 +0800 Subject: [PATCH] Merge branch 'master' of ssh://sinata.cn:20202/java/HongRuiTang into master --- ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/CodeFactoryUtil.java | 145 +++++++++++++++++++++++++++++++++++++---------- 1 files changed, 113 insertions(+), 32 deletions(-) diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/CodeFactoryUtil.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/CodeFactoryUtil.java index f26f5f2..4fe9468 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/CodeFactoryUtil.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/CodeFactoryUtil.java @@ -5,7 +5,6 @@ import org.apache.commons.lang3.time.DateFormatUtils; import org.springframework.stereotype.Component; -import javax.annotation.Resource; import java.security.SecureRandom; import java.util.Date; import java.util.Random; @@ -21,14 +20,13 @@ @Component public class CodeFactoryUtil { + private static RedisService redisService = null; - //静态住入到自己的类中 - private static RedisService redisService; - - //将静态属性以入参(形参)的方式传入一个方法中,然后将此方法通过 @Resource 注入到Spring容器中 - @Resource - public void setService(RedisService redisService) { - CodeFactoryUtil.redisService = redisService; + private static RedisService getRedisService() { + if (redisService == null) { + redisService = ApplicationContextUtil.getBean(RedisService.class); + } + return redisService; } /** @@ -40,6 +38,13 @@ * 商户编号 */ private static final String SHOP_PREFIX = "HRT_S"; + + /** + * 商品编号 + */ + private static final String GOODS_PREFIX = "HRT_G"; + + /** * 商户订单前缀 @@ -56,6 +61,41 @@ */ private static final String SHOP_ORDER_PREFIX = "CJ"; + /** + * 积分商城订单前缀 + */ + private static final String INTEGRAL_ORDER_PREFIX = "JF"; + + /** + * 直播订单前缀 + */ + private static final String LIVE_ORDER_PREFIX = "ZB"; + + /** + * 拼团订单前缀 + */ + private static final String GROUP_ORDER_PREFIX = "PT"; + + /** + * 砍价订单前缀 + */ + private static final String CUT_ORDER_PREFIX = "KJ"; + + /** + * 采购订单前缀 + */ + private static final String PURCHASE_ORDER_PREFIX = "CG"; + + /** + * 入库订单前缀 + */ + private static final String IN_ORDER_PREFIX = "RK"; + + /** + * 出库订单前缀 + */ + private static final String OUT_ORDER_PREFIX = "CK"; + /** * 退款订单前缀 @@ -70,7 +110,7 @@ * 用户id和随机数总长度 */ - private static final int SHOP_LENGTH = 4; + private static final int SHOP_LENGTH = 5; private static final int MEMBER_LENGTH = 6; @@ -80,19 +120,20 @@ * 更具id进行加密+加随机数组成固定长度编码 */ - /*public static void main(String[] args) { - - }*/ + public static void main(String[] args) { + System.out.printf("getShopNo()"+getShopNo()); + } /** * 获取商户编号 - * - * @param shopId * @return */ - public static String getShopNo(Long shopId) { + public static String getShopNo() { + String shopNo; String prefix = SHOP_PREFIX; - return toFillZeroCode(prefix, SHOP_LENGTH, shopId); + String suffixNumber = getNoSuffixNumber(prefix); + shopNo = prefix + suffixNumber; + return shopNo; } /** @@ -105,33 +146,73 @@ return toFillZeroCode(prefix, MEMBER_LENGTH, 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; + /** + * @description 获取商品编号 + * @author jqs + * @date 2023/6/13 14:48 + * @param + * @return String + */ + public static String getGoodsNo() { + String goodsNo; + String prefix = GOODS_PREFIX; + String suffixNumber = getNoSuffixNumber(prefix); + goodsNo = prefix + suffixNumber; + return goodsNo; } - private static String getSuffixNumber(String prefix){ + + private static String getNoSuffixNumber(String prefix){ Integer suffixNumberInt; - String suffixNumber = "0001"; - if(redisService.hasKey(prefix)){ - suffixNumberInt = redisService.getCacheObject(prefix); - suffixNumber = toFillZeroSuffixNumber(suffixNumberInt); + String suffixNumber = "00001"; + if(getRedisService().hasKey(prefix)){ + suffixNumberInt = getRedisService().getCacheObject(prefix); + suffixNumber = toFillZeroSuffixNumber(suffixNumberInt,SHOP_LENGTH); suffixNumberInt = suffixNumberInt + 1; - redisService.setCacheObject(prefix, suffixNumberInt, 24L, TimeUnit.HOURS); + getRedisService().setCacheObject(prefix, suffixNumberInt); }else{ - redisService.setCacheObject(prefix, 1, 24L, TimeUnit.HOURS); + getRedisService().setCacheObject(prefix, 1); } return suffixNumber; } - private static String toFillZeroSuffixNumber(Integer suffixNumberInt){ + + /** + * @description 获取商城订单编号 + * @author jqs + * @date 2023/6/13 14:48 + * @param + * @return String + */ + public static String getShopOrderNo() { + String orderNo; + String timeTemp = DateFormatUtils.format(new Date(), "yyyyMMdd"); + String prefix = ORDER_PREFIX + timeTemp; + String suffixNumber = getOrderSuffixNumber(prefix); + orderNo = prefix + suffixNumber; + return orderNo; + } + + + + private static String getOrderSuffixNumber(String prefix){ + Integer suffixNumberInt; + String suffixNumber = "0001"; + if(getRedisService().hasKey(prefix)){ + suffixNumberInt = getRedisService().getCacheObject(prefix); + suffixNumber = toFillZeroSuffixNumber(suffixNumberInt,ORDER_LENGTH); + suffixNumberInt = suffixNumberInt + 1; + getRedisService().setCacheObject(prefix, suffixNumberInt, 24L, TimeUnit.HOURS); + }else{ + getRedisService().setCacheObject(prefix, 1, 24L, TimeUnit.HOURS); + } + return suffixNumber; + } + + private static String toFillZeroSuffixNumber(Integer suffixNumberInt,Integer maxLength){ String suffixNumberStr = suffixNumberInt.toString(); int length = suffixNumberStr.length(); - int fillLength = 4 - length; + int fillLength = maxLength - length; StringBuilder idsbs = new StringBuilder(); for (int i = 0; i < fillLength; i++) { idsbs.append("0"); -- Gitblit v1.7.1