jiangqs
2023-06-15 a262dee3a122f081a2d31d86b851ce3df0680d1a
ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/CodeFactoryUtil.java
@@ -42,6 +42,13 @@
    private static final String SHOP_PREFIX = "HRT_S";
    /**
     * 商品编号
     */
    private static final String GOODS_PREFIX = "HRT_G";
    /**
     * 商户订单前缀
     */
    private static final String ORDER_PREFIX = "SC";
@@ -55,6 +62,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 +112,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 +122,20 @@
     * 更具id进行加密+加随机数组成固定长度编码
     */
    /*public static void main(String[] args) {
    public static void main(String[] args) {
    }*/
    }
    /**
     * 获取商户编号
     *
     * @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,21 +148,61 @@
        return toFillZeroCode(prefix, MEMBER_LENGTH, userId);
    }
    /**
     * @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 getNoSuffixNumber(String prefix){
        Integer suffixNumberInt;
        String suffixNumber = "00001";
        if(redisService.hasKey(prefix)){
            suffixNumberInt = redisService.getCacheObject(prefix);
            suffixNumber = toFillZeroSuffixNumber(suffixNumberInt,SHOP_LENGTH);
            suffixNumberInt = suffixNumberInt + 1;
            redisService.setCacheObject(prefix, suffixNumberInt);
        }else{
            redisService.setCacheObject(prefix, 1);
        }
        return suffixNumber;
    }
    /**
     * @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 = getSuffixNumber(prefix);
        String suffixNumber = getOrderSuffixNumber(prefix);
        orderNo = prefix + suffixNumber;
        return orderNo;
    }
    private static String getSuffixNumber(String prefix){
    private static String getOrderSuffixNumber(String prefix){
        Integer suffixNumberInt;
        String suffixNumber = "0001";
        if(redisService.hasKey(prefix)){
            suffixNumberInt = redisService.getCacheObject(prefix);
            suffixNumber = toFillZeroSuffixNumber(suffixNumberInt);
            suffixNumber = toFillZeroSuffixNumber(suffixNumberInt,ORDER_LENGTH);
            suffixNumberInt = suffixNumberInt + 1;
            redisService.setCacheObject(prefix, suffixNumberInt, 24L, TimeUnit.HOURS);
        }else{
@@ -128,10 +211,10 @@
        return suffixNumber;
    }
    private static String toFillZeroSuffixNumber(Integer suffixNumberInt){
    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");