feat(ops): kb doc edit, validation auto-tickets, support batch ops

Add knowledge document GET/PUT and admin edit UI; auto-create support tickets on client 400 validation errors across user/shop/partner apps; batch create tasks and publish from support tickets; restore mini-user store env single-column layout.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-05 00:08:40 +08:00
parent 16c386f165
commit 02d89e6385
18 changed files with 677 additions and 24 deletions
@@ -13,6 +13,7 @@ import type {
CreateKnowledgeBaseRequest,
CreateKnowledgeDocumentRequest,
UpdateKnowledgeBaseRequest,
UpdateKnowledgeDocumentRequest,
} from '@dukang/shared-types';
import { HqAuthGuard } from '../../common/guards/hq-auth.guard';
import {
@@ -119,6 +120,33 @@ export class AdminKnowledgeBasesController {
return this.service.addDocument(actor, BigInt(id), body);
}
@Get(':id/documents/:docId')
async getDocument(
@CurrentUser() user: AuthUser,
@Param('id') id: string,
@Param('docId') docId: string,
) {
const actor = await this.service.resolveActor(user.actorId);
return this.service.getDocument(actor, BigInt(id), BigInt(docId));
}
@Put(':id/documents/:docId')
@HqOperation({
action: HqOperationAction.KNOWLEDGE_DOC_UPDATE,
refType: 'KNOWLEDGE_DOCUMENT',
refIdField: 'docId',
includeBody: true,
})
async updateDocument(
@CurrentUser() user: AuthUser,
@Param('id') id: string,
@Param('docId') docId: string,
@Body() body: UpdateKnowledgeDocumentRequest,
) {
const actor = await this.service.resolveActor(user.actorId);
return this.service.updateDocument(actor, BigInt(id), BigInt(docId), body);
}
@Delete(':id/documents/:docId')
@HqOperation({
action: HqOperationAction.KNOWLEDGE_DOC_DELETE,