「crudapi」零程式碼實現訂單序列號Sequence

bluetooth發表於2021-09-09

序列號管理

本文透過產品編碼和訂單流水號介紹一下序列號(Sequence)在crudapi中的應用。

概要

序列號

MySQL資料庫沒有單獨的Sequence,只支援自增長(increment)主鍵,但是不能設定步長、開始索引、格式等,最重要的是一張表只能由一個欄位使用自增,但有的時候我們需要多個欄位實現序列號功能或者需要支援複雜格式,MySQL本身是實現不了的,所以crudapi封裝了複雜序列號,支援字串和數字,自定義格式,也可以設定為時間戳。可以用於產品編碼、訂單流水號等場景!

配置序列號

產品編碼

圖片描述
產品編碼採用字串方式,格式為:PROD_%09d,表示長度為9,寬度不足用0補齊,最小值從1開始, 最大值為999999999,下一個值為1,步長為1。

銷售訂單流水號

圖片描述
產品編碼採用時間戳方式,格式為:'SO’yyyyMMddHHmmssSSS,SO表示字首,精確到年月日時分秒毫秒

表定義配置序列號屬性

產品編碼

圖片描述
產品表配置序列號欄位

銷售訂單流水號

圖片描述
銷售訂單表配置序列號欄位

驗證序列號功能

產品

圖片描述
透過ui建立產品,因為編碼欄位設定了序列號,所以留空,這樣後臺會自動生成編碼,如果編碼欄位手工輸入,就以手工輸入地值為準。

圖片描述
生成的編碼為PROD_000000001,和期望的一致。

銷售訂單

圖片描述
透過Postman建立銷售訂單

圖片描述
ui檢視訂單列表,流水號發現SO20210212110955912生成成功

高階

序列號API

圖片描述
序列號提供了獲取下一個值功能的API,適合UI定製的場景,顯式的把值顯示在ui上,這樣更加直觀,但是如果使用者不點儲存或者儲存失敗的話,可能會浪費值。檢視swagger文件。

驗證

圖片描述
透過Postman獲取到下一個值為PROD_000000002

小結

本文透過配置序列號的方式實現了特定欄位的自動賦值功能,無需編碼,並且支援二次開發。目前有點不完善的地方,產品和銷售訂單都是孤立的單表,後續會介紹如果配置表關係,實現一對多,一對一,多對多等主子表。

附crudapi簡介

本系統屬於產品級的零程式碼平臺,不同於自動程式碼生成器,不需要生成Controller、Service、Repository、Entity等業務程式碼,程式執行起來就可以使用,真正0程式碼,可以覆蓋基本的和業務無關的CRUD RESTful API。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3402/viewspace-2797264/,如需轉載,請註明出處,否則將追究法律責任。

相關文章