zoukankan      html  css  js  c++  java
  • 根据redis自增生成全局唯一订单id

    package com.example.springbootshardingjdbc.util;
    
    import java.time.LocalDateTime;
    import java.time.format.DateTimeFormatter;
    
    public class MyUtil {
        public static String currentDateTime(){
            LocalDateTime localDateTime=LocalDateTime.now();
            DateTimeFormatter dateTimeFormatter=DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
            String now = dateTimeFormatter.format(localDateTime);
            return now;
        }
    
        /**
         * 根据自增id生成唯一订单号
         * @param incrKey 自增id
         * @return
         */
        public static String renderOrderId(Long incrKey){
            /**
             * 日期+00001 后边是5位数 补零
             */
            String orderId = currentDateTime() + String.format("%1$05d", incrKey);
            return orderId;
        }
    
        public static void main(String[] args) {
            String result = renderOrderId(2L);
            System.out.println(result);
        }
    
    }



    调用:

    可根据项目实际情况确定订单号的位数,一般日期到秒足以支撑绝大部分系统

       @RequestMapping("/generateOrderId")
        public Object generateOrderId(String userName){
            Long result = redisTemplate.opsForValue().increment(userName);
            String orderId = MyUtil.renderOrderId(result);
            System.out.println(userName+":"+orderId);
            return orderId;
        }
    
    
    结果:
    lisi:2020022416433100214
    lisi:2020022416433100215
    lisi:2020022416433100216
    lisi:2020022416433100217
    lisi:2020022416433100218
    lisi:2020022416433200219
    lisi:2020022416433200220
    lisi:2020022416433200221
    lisi:2020022416433200222
    lisi:2020022416433200223
    lisi:2020022416433200224
    lisi:2020022416433300225
    lisi:2020022416433300226
    lisi:2020022416433300227
    lisi:2020022416433300228
    lisi:2020022416433300229
    lisi:2020022416433300230
    lisi:2020022416433400231
    lisi:2020022416433400232
    lisi:2020022416433400233
    lisi:2020022416433400234
    lisi:2020022416433400235
    lisi:2020022416433400236
    wangwu:2020022416435300001
    wangwu:2020022416435400002
    wangwu:2020022416435500003
    wangwu:2020022416435500004
    wangwu:2020022416435500005
    wangwu:2020022416435500006
    wangwu:2020022416435500007
    wangwu:2020022416435500008
    wangwu:2020022416435600009
    wangwu:2020022416435600010
  • 相关阅读:
    【cf932E】E. Team Work(第二类斯特林数)
    【bzoj5093】[Lydsy1711月赛]图的价值(NTT+第二类斯特林数)
    斯特林数及斯特林反演
    Codeforces Round #608 (Div. 2)
    【cf1272】F. Two Bracket Sequences
    Codeforces Round #606 (Div. 2)
    【hdu4045】Machine scheduling(dp+第二类斯特林数)
    【poj2661】Factstone Benchmark(斯特林公式)
    [USACO1.4] Packing Rectangles
    [CF1313D] Happy New Year
  • 原文地址:https://www.cnblogs.com/coderdxj/p/12357609.html
Copyright © 2011-2022 走看看