50 lines
1.5 KiB
Python
50 lines
1.5 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
编码生成器 API
|
|
"""
|
|
import logging
|
|
|
|
from fastapi import APIRouter, Depends
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
|
from app.database import get_db
|
|
from core.code_generator.schema import CodeGenerateRequest, CodeGenerateResponse
|
|
from core.code_generator.service import CodeGeneratorService
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
router = APIRouter(prefix="/code-generator", tags=["编码生成器"])
|
|
|
|
|
|
@router.post("/generate", response_model=CodeGenerateResponse, summary="生成编码")
|
|
async def generate_code(
|
|
request: CodeGenerateRequest,
|
|
db: AsyncSession = Depends(get_db),
|
|
):
|
|
"""
|
|
生成编码
|
|
|
|
支持的生成模式:
|
|
- date_seq: 日期+序号 (PREFIX20241222-0001)
|
|
- datetime: 日期时间 (PREFIX20241222103000)
|
|
- random: 随机字符 (PREFIX-X7K9M2)
|
|
- snowflake: 雪花ID (PREFIX1234567890123456)
|
|
- uuid: UUID片段 (PREFIX-a1b2c3d4)
|
|
- custom: 自定义模板
|
|
"""
|
|
code = await CodeGeneratorService.generate_code(
|
|
db=db,
|
|
prefix=request.prefix,
|
|
separator=request.separator,
|
|
generate_mode=request.generate_mode,
|
|
date_format=request.date_format,
|
|
seq_length=request.seq_length,
|
|
seq_reset_rule=request.seq_reset_rule,
|
|
random_length=request.random_length,
|
|
custom_template=request.custom_template,
|
|
business_type=request.business_type
|
|
)
|
|
|
|
return CodeGenerateResponse(code=code)
|