first commit
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>OrderNumberGenerator.java</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<style type="text/css">
|
||||
.s0 { color: #0033b3;}
|
||||
.s1 { color: #080808;}
|
||||
.s2 { color: #067d17;}
|
||||
.s3 { color: #8c8c8c; font-style: italic;}
|
||||
.s4 { color: #8c8c8c; font-weight: bold; font-style: italic;}
|
||||
.s5 { color: #1750eb;}
|
||||
.ln { color: #aeb3c2; font-weight: normal; font-style: normal; }
|
||||
</style>
|
||||
</head>
|
||||
<body bgcolor="#ffffff">
|
||||
<table CELLSPACING=0 CELLPADDING=5 COLS=1 WIDTH="100%" BGCOLOR="#c0c0c0" >
|
||||
<tr><td><center>
|
||||
<font face="Arial, Helvetica" color="#000000">
|
||||
OrderNumberGenerator.java</font>
|
||||
</center></td></tr></table>
|
||||
<pre><a name="l1"><span class="ln">1 </span></a><span class="s0">package </span><span class="s1">com.spark.plannerTeacher.util;</span>
|
||||
<a name="l2"><span class="ln">2 </span></a>
|
||||
<a name="l3"><span class="ln">3 </span></a><span class="s0">import </span><span class="s1">org.springframework.data.redis.core.RedisTemplate;</span>
|
||||
<a name="l4"><span class="ln">4 </span></a><span class="s0">import </span><span class="s1">org.springframework.stereotype.Component;</span>
|
||||
<a name="l5"><span class="ln">5 </span></a>
|
||||
<a name="l6"><span class="ln">6 </span></a><span class="s0">import </span><span class="s1">java.time.LocalDateTime;</span>
|
||||
<a name="l7"><span class="ln">7 </span></a><span class="s0">import </span><span class="s1">java.time.format.DateTimeFormatter;</span>
|
||||
<a name="l8"><span class="ln">8 </span></a><span class="s0">import </span><span class="s1">java.util.concurrent.TimeUnit;</span>
|
||||
<a name="l9"><span class="ln">9 </span></a>
|
||||
<a name="l10"><span class="ln">10 </span></a><span class="s1">@Component</span>
|
||||
<a name="l11"><span class="ln">11 </span></a><span class="s0">public class </span><span class="s1">OrderNumberGenerator {</span>
|
||||
<a name="l12"><span class="ln">12 </span></a>
|
||||
<a name="l13"><span class="ln">13 </span></a> <span class="s0">private static final </span><span class="s1">String ORDER_NUMBER_PREFIX = </span><span class="s2">"ORDER"</span><span class="s1">;</span>
|
||||
<a name="l14"><span class="ln">14 </span></a> <span class="s0">private static final </span><span class="s1">String ORDER_NUMBER_KEY = </span><span class="s2">"order:number:"</span><span class="s1">;</span>
|
||||
<a name="l15"><span class="ln">15 </span></a> <span class="s0">private static final </span><span class="s1">DateTimeFormatter formatter = DateTimeFormatter.ofPattern(</span><span class="s2">"yyyyMMdd"</span><span class="s1">);</span>
|
||||
<a name="l16"><span class="ln">16 </span></a> <span class="s0">private final </span><span class="s1">RedisTemplate<String, String> redisTemplate;</span>
|
||||
<a name="l17"><span class="ln">17 </span></a>
|
||||
<a name="l18"><span class="ln">18 </span></a> <span class="s0">public </span><span class="s1">OrderNumberGenerator(RedisTemplate<String, String> redisTemplate) {</span>
|
||||
<a name="l19"><span class="ln">19 </span></a> <span class="s0">this</span><span class="s1">.redisTemplate = redisTemplate;</span>
|
||||
<a name="l20"><span class="ln">20 </span></a> <span class="s1">}</span>
|
||||
<a name="l21"><span class="ln">21 </span></a>
|
||||
<a name="l22"><span class="ln">22 </span></a> <span class="s3">/**</span>
|
||||
<a name="l23"><span class="ln">23 </span></a> <span class="s3">* 生成订单号</span>
|
||||
<a name="l24"><span class="ln">24 </span></a> <span class="s3">* 格式:ORDER + 年月日 + 6位自增序号</span>
|
||||
<a name="l25"><span class="ln">25 </span></a> <span class="s3">* 例如:ORDER202403150000001</span>
|
||||
<a name="l26"><span class="ln">26 </span></a> <span class="s3">*/</span>
|
||||
<a name="l27"><span class="ln">27 </span></a> <span class="s0">public </span><span class="s1">String generateOrderNumber() {</span>
|
||||
<a name="l28"><span class="ln">28 </span></a> <span class="s1">String date = LocalDateTime.now().format(formatter);</span>
|
||||
<a name="l29"><span class="ln">29 </span></a> <span class="s1">String key = ORDER_NUMBER_KEY + date;</span>
|
||||
<a name="l30"><span class="ln">30 </span></a>
|
||||
<a name="l31"><span class="ln">31 </span></a> <span class="s4">// 获取当天的自增序号</span>
|
||||
<a name="l32"><span class="ln">32 </span></a> <span class="s1">Long increment = redisTemplate.opsForValue().increment(key);</span>
|
||||
<a name="l33"><span class="ln">33 </span></a> <span class="s0">if </span><span class="s1">(increment == </span><span class="s5">1</span><span class="s1">) {</span>
|
||||
<a name="l34"><span class="ln">34 </span></a> <span class="s4">// 设置key的过期时间为1天</span>
|
||||
<a name="l35"><span class="ln">35 </span></a> <span class="s1">redisTemplate.expire(key, </span><span class="s5">1</span><span class="s1">, TimeUnit.DAYS);</span>
|
||||
<a name="l36"><span class="ln">36 </span></a> <span class="s1">}</span>
|
||||
<a name="l37"><span class="ln">37 </span></a>
|
||||
<a name="l38"><span class="ln">38 </span></a> <span class="s4">// 格式化6位序号</span>
|
||||
<a name="l39"><span class="ln">39 </span></a> <span class="s1">String sequence = String.format(</span><span class="s2">"%06d"</span><span class="s1">, increment);</span>
|
||||
<a name="l40"><span class="ln">40 </span></a> <span class="s0">return </span><span class="s1">ORDER_NUMBER_PREFIX + date + sequence;</span>
|
||||
<a name="l41"><span class="ln">41 </span></a> <span class="s1">}</span>
|
||||
<a name="l42"><span class="ln">42 </span></a><span class="s1">} </span></pre>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,50 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>RedisUtil.java</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<style type="text/css">
|
||||
.s0 { color: #0033b3;}
|
||||
.s1 { color: #080808;}
|
||||
.ln { color: #aeb3c2; font-weight: normal; font-style: normal; }
|
||||
</style>
|
||||
</head>
|
||||
<body bgcolor="#ffffff">
|
||||
<table CELLSPACING=0 CELLPADDING=5 COLS=1 WIDTH="100%" BGCOLOR="#c0c0c0" >
|
||||
<tr><td><center>
|
||||
<font face="Arial, Helvetica" color="#000000">
|
||||
RedisUtil.java</font>
|
||||
</center></td></tr></table>
|
||||
<pre><a name="l1"><span class="ln">1 </span></a><span class="s0">package </span><span class="s1">com.spark.plannerTeacher.util;</span>
|
||||
<a name="l2"><span class="ln">2 </span></a>
|
||||
<a name="l3"><span class="ln">3 </span></a><span class="s0">import </span><span class="s1">org.springframework.data.redis.core.RedisTemplate;</span>
|
||||
<a name="l4"><span class="ln">4 </span></a><span class="s0">import </span><span class="s1">org.springframework.stereotype.Component;</span>
|
||||
<a name="l5"><span class="ln">5 </span></a>
|
||||
<a name="l6"><span class="ln">6 </span></a><span class="s0">import </span><span class="s1">java.util.concurrent.TimeUnit;</span>
|
||||
<a name="l7"><span class="ln">7 </span></a>
|
||||
<a name="l8"><span class="ln">8 </span></a><span class="s1">@Component</span>
|
||||
<a name="l9"><span class="ln">9 </span></a><span class="s0">public class </span><span class="s1">RedisUtil {</span>
|
||||
<a name="l10"><span class="ln">10 </span></a>
|
||||
<a name="l11"><span class="ln">11 </span></a> <span class="s0">private final </span><span class="s1">RedisTemplate<String, Object> redisTemplate;</span>
|
||||
<a name="l12"><span class="ln">12 </span></a>
|
||||
<a name="l13"><span class="ln">13 </span></a> <span class="s0">public </span><span class="s1">RedisUtil(RedisTemplate<String, Object> redisTemplate) {</span>
|
||||
<a name="l14"><span class="ln">14 </span></a> <span class="s0">this</span><span class="s1">.redisTemplate = redisTemplate;</span>
|
||||
<a name="l15"><span class="ln">15 </span></a> <span class="s1">}</span>
|
||||
<a name="l16"><span class="ln">16 </span></a>
|
||||
<a name="l17"><span class="ln">17 </span></a> <span class="s0">public void </span><span class="s1">set(String key, Object value, </span><span class="s0">long </span><span class="s1">timeout, TimeUnit unit) {</span>
|
||||
<a name="l18"><span class="ln">18 </span></a> <span class="s1">redisTemplate.opsForValue().set(key, value, timeout, unit);</span>
|
||||
<a name="l19"><span class="ln">19 </span></a> <span class="s1">}</span>
|
||||
<a name="l20"><span class="ln">20 </span></a>
|
||||
<a name="l21"><span class="ln">21 </span></a> <span class="s0">public </span><span class="s1">Object get(String key) {</span>
|
||||
<a name="l22"><span class="ln">22 </span></a> <span class="s0">return </span><span class="s1">redisTemplate.opsForValue().get(key);</span>
|
||||
<a name="l23"><span class="ln">23 </span></a> <span class="s1">}</span>
|
||||
<a name="l24"><span class="ln">24 </span></a>
|
||||
<a name="l25"><span class="ln">25 </span></a> <span class="s0">public void </span><span class="s1">delete(String key) {</span>
|
||||
<a name="l26"><span class="ln">26 </span></a> <span class="s1">redisTemplate.delete(key);</span>
|
||||
<a name="l27"><span class="ln">27 </span></a> <span class="s1">}</span>
|
||||
<a name="l28"><span class="ln">28 </span></a>
|
||||
<a name="l29"><span class="ln">29 </span></a> <span class="s0">public boolean </span><span class="s1">hasKey(String key) {</span>
|
||||
<a name="l30"><span class="ln">30 </span></a> <span class="s0">return </span><span class="s1">Boolean.TRUE.equals(redisTemplate.hasKey(key));</span>
|
||||
<a name="l31"><span class="ln">31 </span></a> <span class="s1">}</span>
|
||||
<a name="l32"><span class="ln">32 </span></a><span class="s1">} </span></pre>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1 @@
|
||||
<html><head><title>com.spark.plannerTeacher.util</title></head><body><a href="RedisUtil.java.html">RedisUtil.java</a><br /><a href="OrderNumberGenerator.java.html">OrderNumberGenerator.java</a><br /></body></html>
|
||||
Reference in New Issue
Block a user