博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
生成订单编号:站点编号前三位 + [5,12]位自增编号
阅读量:5037 次
发布时间:2019-06-12

本文共 1750 字,大约阅读时间需要 5 分钟。

/**     * 生成订单编号:站点编号前三位 + [5,12]位自增编号     *      * @param siteCode     * @return     * @author jqlin     */    private String getOrderNo(String siteCode) {        String result = siteCode.length() <= 3 ? siteCode : siteCode.substring(0, 3);        result = result.toUpperCase();        try {            String orderNoIncr = "orderNoIncr";            if(!RedisUtil.exists(orderNoIncr)) {                RedisUtil.set(orderNoIncr, "0");            }                        //根据redis生成自增ID            Long seq = RedisUtil.incr(orderNoIncr);            if(seq == null || seq == 0L) {                //根据mysql生成自增ID                seq = (Long)idDao.save(new IdModel());                result = result + "DB" + Util.getSequence(seq);            } else {                result = result + Util.getSequence(seq);            }        } catch (Exception e) {            //根据内存生成自增ID            result = result + "MM" + String.valueOf(Math.abs(UUID.randomUUID().getMostSignificantBits())).substring(0, 8);        }                 return result;            }

 

/**     * 自增编号范围在[10000,999999999999],不足补0     *      * @param seq     * @return     * @author jqlin     */    public static String getSequence(long seq) {        long defaultLength = 9999L;        long maxLength = 999999999999L;                if(seq >= maxLength) {            return String.valueOf(maxLength);        }                if(seq > defaultLength) {            return String.valueOf(seq);        }                  int len = 5 - String.valueOf(seq).length();        StringBuilder sb = new StringBuilder();        for (int i = 0; i < len; i++) {            sb.append('0');        }        sb.append(seq);        return sb.toString();    }

 

转载于:https://www.cnblogs.com/linjiqin/p/9520527.html

你可能感兴趣的文章
编写一个函数isMerge,判断一个字符串str是否可以由其他两个字符串part1和part2“组合”而成...
查看>>
文件操作
查看>>
NYOJ-613//HDU-1176-免费馅饼,数字三角形的兄弟~~
查看>>
linux下设置固定IP的方法
查看>>
ubuntu 16.04 (软件应用)-输入法
查看>>
graphite custom functions
查看>>
js获取请求地址后面带的参数
查看>>
设计模式のCompositePattern(组合模式)----结构模式
查看>>
系统管理玩玩Windows Azure
查看>>
c#匿名方法
查看>>
如何判断链表是否有环
查看>>
ssh无密码登陆屌丝指南
查看>>
MySQL锁之三:MySQL的共享锁与排它锁编码演示
查看>>
docker常用命令详解
查看>>
jQuery技巧大放送
查看>>
字符串转换成JSON的三种方式
查看>>
clojure-emacs-autocomplete
查看>>
一个自己写的判断2个相同对象的属性值差异的工具类
查看>>
10 华电内部文档搜索系统 search03
查看>>
[HDU1402]A * B Problem Plus(FFT)
查看>>