利用redis自增计算数值,并且每一年为单位,新的一年从1开始增加

10 篇文章 0 订阅

参数格式  ${year-5-} ;并且 5 是可以变化的,例如 ${year-10-}  10指的是返回编号的位数,传几就返回几位数

测试代码
String ruleStr = "${year-5-} ";
String yearAndCode = redisHelper.yearAndCode(ruleStr);



//  ${year}-${year-5-code}  5 是可以变化的  最终生成的效果如   2021-00001
    public String yearAndCode(String ruleStr){
        String yyyy = DateUtils.dateToStr(new Date(), "yyyy"); //  获取当前年份
        String redisKey = "key_year_" + yyyy ;
        long incr = 1L;
        if (hasKey(redisKey)) {
            incr = incr(redisKey, 1);
        }else {
            set(redisKey, 1);
        }
        String substring = ruleStr.substring(ruleStr.indexOf("-")+1, ruleStr.indexOf("-}"));
        int count = 0;
        String str = "";
        if(StringUtils.isNotBlank(substring)){
            count = Integer.parseInt(substring);
        }
        for (int i = 1; i< count ; i++){
            str += "0";
        }
        String value = str+String.valueOf(incr);
        String code = value.substring(value.length() - count, value.length());
        String yearCode = yyyy+"-"+code;
        return yearCode;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值