feat(login): emit login and online status events

This commit is contained in:
2026-07-10 12:16:27 +08:00
parent 2f4783f1f9
commit 1d2948677e
4 changed files with 73 additions and 10 deletions

View File

@@ -14,6 +14,11 @@ router = APIRouter(prefix="/v1/wechat-personal", tags=["wechat-personal"])
class StartLoginRequest(BaseModel):
account_id: str = Field(..., description="渠道账号唯一标识")
account_name: Optional[str] = Field(None, description="账号显示名称")
tenant_code: str = Field("default", description="业务系统租户编码")
class LoginConfirmRequest(BaseModel):
tenant_code: str = Field("default", description="业务系统租户编码")
class SendTextRequest(BaseModel):
@@ -30,7 +35,7 @@ class SendImageRequest(BaseModel):
@router.post("/login/start")
def start_login(request: StartLoginRequest):
return login_service.start_login(request.account_id, request.account_name)
return login_service.start_login(request.account_id, request.account_name, request.tenant_code)
@router.get("/login/{account_id}/status")
@@ -39,8 +44,13 @@ def login_status(account_id: str):
@router.post("/login/{account_id}/confirm")
def confirm_login(account_id: str):
return login_service.confirm_login(account_id)
def confirm_login(account_id: str, request: LoginConfirmRequest):
return login_service.confirm_login(account_id, request.tenant_code)
@router.post("/login/{account_id}/expire")
def expire_login(account_id: str, request: LoginConfirmRequest):
return login_service.expire_login(account_id, request.tenant_code)
@router.post("/send/text")