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