|
|
|
@@ -117,7 +117,7 @@ export class WecomBotCapabilityService {
|
|
|
|
|
) {
|
|
|
|
|
const cmds: string[] = [];
|
|
|
|
|
if (wecomBotHasPermission(bot, 'dev_plan.task.create')) cmds.push('`新建任务 BUG|需求|优化 <描述>`');
|
|
|
|
|
if (wecomBotHasPermission(bot, 'dev_plan.task.update_status')) cmds.push('`修改任务 <编号> TODO|IN_PROGRESS|DEVELOPED|RELEASED`');
|
|
|
|
|
if (wecomBotHasPermission(bot, 'dev_plan.task.update_status')) cmds.push('`修改任务 <编号> TODO|IN_PROGRESS|DEVELOPED|RELEASED|STOPPED`');
|
|
|
|
|
lines.push('**开发任务管理**', cmds.join(' · '), '');
|
|
|
|
|
}
|
|
|
|
|
if (
|
|
|
|
@@ -1234,10 +1234,10 @@ export class WecomBotCapabilityService {
|
|
|
|
|
private async updateDevPlanTaskStatus(bot: WecomBotRuntimeConfig, wecomUserId: string, input: string) {
|
|
|
|
|
this.requirePerm(bot, 'dev_plan.task.update_status');
|
|
|
|
|
const trimmed = input.trim();
|
|
|
|
|
if (!trimmed) return '请提供任务编号和状态,格式:`修改任务 STxxx TODO|IN_PROGRESS|DEVELOPED|RELEASED`';
|
|
|
|
|
if (!trimmed) return '请提供任务编号和状态,格式:`修改任务 STxxx TODO|IN_PROGRESS|DEVELOPED|RELEASED|STOPPED`';
|
|
|
|
|
|
|
|
|
|
const parts = trimmed.split(/\s+/).filter(Boolean);
|
|
|
|
|
if (parts.length < 2) return '格式:`修改任务 <任务编号> <状态>`\n状态:TODO(待开发)· IN_PROGRESS(开发中)· DEVELOPED(已开发)· RELEASED(已上线)';
|
|
|
|
|
if (parts.length < 2) return '格式:`修改任务 <任务编号> <状态>`\n状态:TODO(待开发)· IN_PROGRESS(开发中)· DEVELOPED(已开发)· RELEASED(已上线)· STOPPED(已停止)';
|
|
|
|
|
|
|
|
|
|
const [taskNo, rawStatus] = parts;
|
|
|
|
|
const STATUS_ALIAS: Record<string, string> = {
|
|
|
|
@@ -1245,9 +1245,10 @@ export class WecomBotCapabilityService {
|
|
|
|
|
IN_PROGRESS: 'IN_PROGRESS', in_progress: 'IN_PROGRESS', 开发中: 'IN_PROGRESS',
|
|
|
|
|
DEVELOPED: 'DEVELOPED', developed: 'DEVELOPED', 已开发: 'DEVELOPED',
|
|
|
|
|
RELEASED: 'RELEASED', released: 'RELEASED', 已发布: 'RELEASED', 已上线: 'RELEASED',
|
|
|
|
|
STOPPED: 'STOPPED', stopped: 'STOPPED', STOPED: 'STOPPED', stoped: 'STOPPED', 已停止: 'STOPPED',
|
|
|
|
|
};
|
|
|
|
|
const status = STATUS_ALIAS[rawStatus];
|
|
|
|
|
if (!status) return `未知状态「${rawStatus}」。可用:TODO(待开发)/ IN_PROGRESS(开发中)/ DEVELOPED(已开发)/ RELEASED(已上线)`;
|
|
|
|
|
if (!status) return `未知状态「${rawStatus}」。可用:TODO(待开发)/ IN_PROGRESS(开发中)/ DEVELOPED(已开发)/ RELEASED(已上线)/ STOPPED(已停止)`;
|
|
|
|
|
|
|
|
|
|
const row = await this.prisma.devPlanTask.findFirst({ where: { taskNo } });
|
|
|
|
|
if (!row) return `未找到任务「${taskNo}」`;
|
|
|
|
@@ -1271,7 +1272,7 @@ export class WecomBotCapabilityService {
|
|
|
|
|
if (!trimmed) return '请提供版本号和状态,格式:`修改版本 v3.6.0 <状态>`';
|
|
|
|
|
|
|
|
|
|
const parts = trimmed.split(/\s+/).filter(Boolean);
|
|
|
|
|
if (parts.length < 2) return '格式:`修改版本 <版本号> <状态>`\n状态:PENDING · IN_PROGRESS · TESTING · RELEASED';
|
|
|
|
|
if (parts.length < 2) return '格式:`修改版本 <版本号> <状态>`\n状态:PENDING · IN_PROGRESS · TESTING · RELEASED · STOPPED';
|
|
|
|
|
|
|
|
|
|
const [versionNo, rawStatus] = parts;
|
|
|
|
|
const STATUS_ALIAS: Record<string, string> = {
|
|
|
|
@@ -1279,9 +1280,10 @@ export class WecomBotCapabilityService {
|
|
|
|
|
IN_PROGRESS: 'IN_PROGRESS', in_progress: 'IN_PROGRESS', 开发中: 'IN_PROGRESS',
|
|
|
|
|
TESTING: 'TESTING', testing: 'TESTING', 测试中: 'TESTING',
|
|
|
|
|
RELEASED: 'RELEASED', released: 'RELEASED', 已发布: 'RELEASED',
|
|
|
|
|
STOPPED: 'STOPPED', stopped: 'STOPPED', STOPED: 'STOPPED', stoped: 'STOPPED', 已停止: 'STOPPED',
|
|
|
|
|
};
|
|
|
|
|
const status = STATUS_ALIAS[rawStatus];
|
|
|
|
|
if (!status) return `未知状态「${rawStatus}」。可用:PENDING / IN_PROGRESS / TESTING / RELEASED`;
|
|
|
|
|
if (!status) return `未知状态「${rawStatus}」。可用:PENDING / IN_PROGRESS / TESTING / RELEASED / STOPPED`;
|
|
|
|
|
|
|
|
|
|
const row = await this.prisma.devPlanVersion.findUnique({ where: { versionNo } });
|
|
|
|
|
if (!row) return `未找到版本「${versionNo}」`;
|
|
|
|
|