zoukankan      html  css  js  c++  java
  • 生成订单流水号的方法

    1、生成流水号的工具类

    package com.chinairi.mall.util;
    
    import java.text.NumberFormat;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    /**
     * @author gsl
     * @date 2020-11-30 18:11
     */
    public class NumberFormatUtil {
        /**
         * 根据规则生成流水号
         *
         * @param numberDigit 流水号的位数
         * @param numberValue 流水号的值
         * @return 流水号的值的字符串信息
         */
        public static String numberFormat(int numberDigit, int numberValue) {
            NumberFormat formatter = NumberFormat.getNumberInstance();
            formatter.setMinimumIntegerDigits(numberDigit);
            formatter.setGroupingUsed(false);
            //日期前缀,这里用的是日期前缀+几位的流水号
            SimpleDateFormat date = new SimpleDateFormat("yyyyMMdd");
            String dateString = date.format(new Date());
            return dateString + formatter.format(numberValue);
        }
    
    
    }

    2、调用

    //此处生成六位的流水号
    String orderId = NumberFormatUtil.numberFormat(6, orderInfoMapper.getOrderNo());

    3、DAO层中getOrderNo()方法的SQL

        <select id="getOrderNo" resultType="java.lang.Integer">
        SELECT IFNULL(MAX(CAST(SUBSTR(ORDER_NO,9,LENGTH(ORDER_NO)) AS UNSIGNED INTEGER)),0) + 1
    FROM ORDER_TABLE
    </select>

    4、可改进的地方

    我这里没有按照每天的流水号更新,第二天不会从0开始算数,值得改进

  • 相关阅读:
    简单了解Linux文件目录
    解决GitLab的Forbidden和Nginx启动失败
    浅谈apidoc的使用
    Linux安装apidoc
    DevExpress的GridControl的实时加载数据解决方案(取代分页)
    Devexpress使用经验1
    ajax下载文件
    var str = "1,21,".TrimEnd(',');
    MSSQ调优所需用的语句
    js中替换返回json中的空格为&nbsp;
  • 原文地址:https://www.cnblogs.com/gslgb/p/14077840.html
Copyright © 2011-2022 走看看