订单ID唯一 规则(我司)字符标识+年月日+四位递增数
引入dayjs
dayjs 为了获取当天的年月日 (其他方式也行)
- 下载依赖
npm install dayjs
- xxx.service.ts 文件引入
import * as dayjs from 'dayjs';
在新增接口编写自动生成订单ID逻辑
xxx.service.ts
// 新增接口里的逻辑
// 获取此时年月日
const data = dayjs().format('YYYYMMDD');
// 查询数据库里的最后一行数据
const [records] = await this.repository.find({
order: { id: 'DESC' },
});
// records.id 就是最后一行的自增id
const weiId = String(records ? records.id : 0);
// 将自增id+1并转换位 0001 形式
const lastId = records ? parseInt(weiId.substr(-4), 10) : 0;
const nextId = (lastId + 1).toString().padStart(4, '0');
// 将所有拼接起来
const id = `DD${data}${nextId}`;
// 结果 DD202312010001
// 将id赋值给orderId存到数据库即可
ps:this.repository是什么?
// 引入你设计的数据库的表
import { Order } from './entities/order.entity';
@Injectable()
export class OrderService {
@InjectRepository(Order)
private repository: Repository<Order>;
// this.repository 你的数据库映射
}