| | |
| | | @SuppressWarnings({"unchecked", "all"}) |
| | | public class RedisUtils { |
| | | private static final Logger log = LoggerFactory.getLogger(RedisUtils.class); |
| | | @Value("${jwt.generate-order-sn}") |
| | | private String generateOrderSn; |
| | | @Value("${wx.enabled}") |
| | | private Boolean wxEnabled; |
| | | private static final String T = "T-"; |
| | |
| | | * @param i |
| | | * @return |
| | | */ |
| | | public String generateOrderSn(Integer i) { |
| | | public String generateSn(String generate, Integer i) { |
| | | StringBuilder sb = new StringBuilder(); |
| | | String date = new SimpleDateFormat("yyyyMMdd").format(new Date()); |
| | | String key = generateOrderSn + i + date; |
| | | String key = generate + i + date; |
| | | Long increment = increment(key); |
| | | sb.append(date); |
| | | sb.append(String.format("%04d", i)); |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 分布式ID生成器 |
| | | * |
| | | * @param key 键 |
| | | * @param value 值 |
| | | * @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期,注意:这里将会替换原有的时间 |
| | | * @return true成功 false 失败 |
| | | */ |
| | | public boolean setIfAbsent(String key, Object value, long time) { |
| | | try { |
| | | if (time > 0) { |
| | | Boolean result = redisTemplate.opsForValue().setIfAbsent(key, value, time, TimeUnit.SECONDS); |
| | | return result; |
| | | } else { |
| | | return false; |
| | | } |
| | | } catch (Exception e) { |
| | | log.error(e.getMessage(), e); |
| | | return false; |
| | | } |
| | | } |
| | | // ================================Map================================= |
| | | |
| | | /** |