Accept Merge Request #201: (feature/hant -> develop)
Merge Request: 修改订单编号 Created By: @todayswind Accepted By: @todayswind URL: https://g-bcrc3009.coding.net/p/allocatr/d/allocatr/git/merge/201?initial=true
This commit is contained in:
commit
1318fdc330
|
|
@ -471,15 +471,7 @@ class Order extends Backend
|
||||||
|
|
||||||
function generateOrderNumber($prefix = '')
|
function generateOrderNumber($prefix = '')
|
||||||
{
|
{
|
||||||
// 获取当前时间戳(精确到毫秒)
|
return \app\admin\model\Order::generateOrderNo();
|
||||||
$timestamp = microtime(true);
|
|
||||||
$date = date('YmdHis', (int)$timestamp); // 格式:YYYYMMDDHHMMSS
|
|
||||||
// $randomNum = strtoupper(substr(md5($timestamp), 0, 4)); // 从时间戳生成一个随机字符串,取前四个字符
|
|
||||||
$code = str_pad(mt_rand(0, 999999), 6, '0', STR_PAD_LEFT);
|
|
||||||
// 组合生成的订单编号
|
|
||||||
$orderNumber = $prefix . $date . $code;
|
|
||||||
// 取 MD5 前10位
|
|
||||||
return substr(md5($orderNumber), 0, 10);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
use AmapTrait;
|
use AmapTrait;
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
namespace app\admin\model;
|
namespace app\admin\model;
|
||||||
|
|
||||||
use app\admin\library\Auth;
|
use app\admin\library\Auth;
|
||||||
|
use think\Cache;
|
||||||
use think\Model;
|
use think\Model;
|
||||||
use traits\model\SoftDelete;
|
use traits\model\SoftDelete;
|
||||||
|
|
||||||
|
|
@ -279,4 +280,28 @@ class Order extends Model
|
||||||
return $this->belongsTo(Worker::class,'worker_id',);
|
return $this->belongsTo(Worker::class,'worker_id',);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生成唯一订单号:8位纯数字(如25063001)
|
||||||
|
* 格式:yyMMdd + 当天自增序号
|
||||||
|
*/
|
||||||
|
public static function generateOrderNo()
|
||||||
|
{
|
||||||
|
$date = date('ymd'); // 6 位日期
|
||||||
|
$key = 'order_inc:' . date('Ymd');
|
||||||
|
|
||||||
|
$inc = Cache::store('redis')->inc($key); // 自增
|
||||||
|
|
||||||
|
// 设置 key 过期(防止 key 永久存在)
|
||||||
|
$handler = Cache::store('redis')->handler();
|
||||||
|
$handler->expire($key, 86400); // 设置 1 天过期
|
||||||
|
|
||||||
|
if ($inc > 9999) {
|
||||||
|
throw new \Exception('订单号已满');
|
||||||
|
}
|
||||||
|
|
||||||
|
$suffix = str_pad($inc, 4, '0', STR_PAD_LEFT); // 可改为 4 位更安全
|
||||||
|
return $date . $suffix; // 最终结果:如 2506300001
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user