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