feat: 项目负责人+内部任务群+portal 内部身份领取+群主链接归属
- 迁移 0012:projects.owner_userid / tasks.task_chat_id / claims.owner_partner_id - lib/task-group-service.ts:懒建 appchat 任务群(首个内部群主领取时创建,成员 diff 补员),播报/卡片文案 - wecom-client 新增 appchat create/update/get/send 封装 - OAuth ticket 增可选 uid(v:1 兼容),内部成员领取按 wecom_userid 解析群主身份 - 外部 OAuth 领取人 upsert 打 partner_type='group_owner' - portal 链接带 ?owner= 穿透 OAuth 往返,claims 记录归属群主 - 后台任务卡「群主链接」面板:复制链接/推送内部群主/任务群状态 - 催办与超期升级同步播报进任务群
This commit is contained in:
@@ -27,20 +27,22 @@ function fakeProjectDb({
|
||||
name: params[1],
|
||||
brand: params[2],
|
||||
main_group_member_ids: params[3],
|
||||
owner_userid: params[4],
|
||||
status: "active",
|
||||
note: params[4],
|
||||
created_at: params[5],
|
||||
note: params[5],
|
||||
created_at: params[6],
|
||||
});
|
||||
return 1;
|
||||
}
|
||||
if (/^UPDATE projects/.test(normalized)) {
|
||||
const row = projects.find((item) => item.id === params[4]);
|
||||
const row = projects.find((item) => item.id === params[5]);
|
||||
if (!row) return 0;
|
||||
Object.assign(row, {
|
||||
name: params[0],
|
||||
brand: params[1],
|
||||
main_group_member_ids: params[2],
|
||||
note: params[3],
|
||||
owner_userid: params[3],
|
||||
note: params[4],
|
||||
});
|
||||
return 1;
|
||||
}
|
||||
@@ -177,10 +179,12 @@ test("saveProject inserts with proj- prefixed id and JSON members", async () =>
|
||||
name: "暑期焕新",
|
||||
brand: "青柠实验室",
|
||||
mainGroupMemberIds: "zhangsan\nlisi\nzhangsan",
|
||||
ownerUserid: "owner-zhang",
|
||||
note: "备注",
|
||||
});
|
||||
assert.match(project.id, /^proj-/);
|
||||
assert.equal(project.name, "暑期焕新");
|
||||
assert.equal(project.ownerUserid, "owner-zhang");
|
||||
assert.deepEqual(project.mainGroupMemberIds, ["zhangsan", "lisi"]);
|
||||
assert.equal(db.projects.length, 1);
|
||||
assert.equal(db.projects[0].status, "active");
|
||||
@@ -205,9 +209,11 @@ test("saveProject updates existing row and rejects blank name", async () => {
|
||||
name: "新名",
|
||||
brand: "品牌",
|
||||
mainGroupMemberIds: ["wangwu"],
|
||||
ownerUserid: "owner-li",
|
||||
});
|
||||
assert.equal(db.projects[0].name, "新名");
|
||||
assert.equal(db.projects[0].brand, "品牌");
|
||||
assert.equal(db.projects[0].owner_userid, "owner-li");
|
||||
assert.deepEqual(JSON.parse(db.projects[0].main_group_member_ids), ["wangwu"]);
|
||||
assert.equal(db.projects.length, 1, "update must not insert");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user