天天看點

通過序列号Sequence零代碼實作訂單流水号序列号管理

序列号管理

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

概要

序列号

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

配置序列号

産品編碼

通過序列号Sequence零代碼實作訂單流水号序列号管理

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

銷售訂單流水号

通過序列号Sequence零代碼實作訂單流水号序列号管理

産品編碼采用時間戳方式,格式為:'SO'yyyyMMddHHmmssSSS,SO表示字首,精确到年月日時分秒毫秒

表定義配置序列号屬性

通過序列号Sequence零代碼實作訂單流水号序列号管理

産品表配置序列号字段

通過序列号Sequence零代碼實作訂單流水号序列号管理

銷售訂單表配置序列号字段

驗證序列号功能

産品

通過序列号Sequence零代碼實作訂單流水号序列号管理

通過ui建立産品,因為編碼字段設定了序列号,是以留白,這樣背景會自動生成編碼,如果編碼字段手工輸入,就以手工輸入地值為準。

通過序列号Sequence零代碼實作訂單流水号序列号管理

生成的編碼為PROD_000000001,和期望的一緻。

銷售訂單

通過序列号Sequence零代碼實作訂單流水号序列号管理

通過Postman建立銷售訂單

通過序列号Sequence零代碼實作訂單流水号序列号管理

ui檢視訂單清單,流水号發現SO20210212110955912生成成功

進階

序列号API

通過序列号Sequence零代碼實作訂單流水号序列号管理

序列号提供了擷取下一個值功能的API,适合UI定制的場景,顯式的把值顯示在ui上,這樣更加直覺,但是如果使用者不點儲存或者儲存失敗的話,可能會浪費值。檢視swagger文檔:

https://demo.crudapi.cn/swagger-ui.html

驗證

通過序列号Sequence零代碼實作訂單流水号序列号管理

通過Postman擷取到下一個值為PROD_000000002

小結

附demo示範

繼續閱讀