博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用redis生成订单号
阅读量:5170 次
发布时间:2019-06-13

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

package com.shopping.app.util;import org.apache.log4j.Logger;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.stereotype.Service;import redis.clients.jedis.*;import java.util.List;import java.util.Map;import java.util.Set;import redis.clients.jedis.BinaryClient.LIST_POSITION;import redis.clients.util.SafeEncoder;@Servicepublic class RedisManager {    @Autowired    @Qualifier("jedisPool")    JedisPool jedisPool;    private Logger log = Logger.getLogger(this.getClass());    /** 操作Key的方法 */    public Keys KEYS = new Keys();    /** 对存储结构为String类型的操作 */    public Strings STRINGS = new Strings();    /** 对存储结构为List类型的操作 */    public Lists LISTS = new Lists();    /** 对存储结构为Set类型的操作 */    public Sets SETS =new Sets();    /** 对存储结构为HashMap类型的操作 */    public Hash HASH = new Hash();    /** 对存储结构为Set(排序的)类型的操作 */    public SortSet SORTSET = new SortSet();public  Long orderId(String prefix){        Jedis jedis = jedisPool.getResource();        String key = "tl_order_id" + prefix;        String orderId = null;        try {            Long index = jedis.incr(key);   //00001            orderId = prefix + String.format("%1$05d", index);        }catch(Exception e){            System.out.println("生成订单号异常");        }finally {            if(null != jedis){                jedis.close();            }        }        return Long.valueOf(orderId);    }}

 

package com.shopping.test;import com.shopping.app.util.RedisManager;import org.springframework.beans.factory.annotation.Autowired;import redis.clients.jedis.Jedis;import java.util.Calendar;import java.util.Date;public class Test {    @Autowired    RedisManager redisManager;    public static String getOrderIDPrefix(Date date){        Calendar c = Calendar.getInstance();        c.setTime(date);        int year = c.get(Calendar.YEAR);        int day = c.get(Calendar.DAY_OF_YEAR);  //从今天属于今年的第多少天?365 2位 3位 267 001        int hour = c.get(Calendar.HOUR_OF_DAY);        String dayFmt = String.format("%1$03d", day);        String hourFmt = String.format("%1$02d", hour);        return (year - 2000) + dayFmt + hourFmt;    }
}
 
String prefix= Test.getOrderIDPrefix(new Date());        System.out.println(prefix);        String orderId=redisManager.orderId(prefix).toString();        System.out.println("生成的订单号:"+orderId);

 

转载于:https://www.cnblogs.com/wyf-love-dch/p/11412726.html

你可能感兴趣的文章
杨柳目-杨柳科:杨柳科
查看>>
Node.js:JXcore
查看>>
优化CUDA数据传输
查看>>
2018-10-27
查看>>
python-整理--连接MSSQL
查看>>
JS图片画方块定位坐标
查看>>
[C#]写自己的类库
查看>>
汉诺塔
查看>>
CentOS安装zip及用法
查看>>
RocketMQ系列实战
查看>>
关于SharePoint 2010体系架构的几个话题
查看>>
页面布局
查看>>
Eclipse 配置SSH 详解
查看>>
什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?
查看>>
Django Mysql数据库-聚合查询与分组查询
查看>>
Android Studio单元测试入门
查看>>
easyui ---- jEasyUI-定制提示信息面板组件
查看>>
[TypeStyle] Reusable styles using TypeStyle mixins
查看>>
[Poi] Build a Vue App with Poi
查看>>
项目经理在项目各阶段的工作重点-更新版
查看>>