feat: 完善员工门店软删除与密码管理

This commit is contained in:
湛兮
2026-05-26 18:01:52 +08:00
parent 6b31ea7bbf
commit e8f05513fd
19 changed files with 597 additions and 73 deletions
@@ -82,7 +82,9 @@ export const permissionRepository = {
r.is_system,
rp.permission_code
FROM roles r
LEFT JOIN role_permissions rp ON rp.role_id = r.id
LEFT JOIN role_permissions rp
ON rp.role_id = r.id AND rp.deleted_at IS NULL
WHERE r.deleted_at IS NULL
ORDER BY r.id ASC, rp.permission_code ASC
`,
);
@@ -104,8 +106,10 @@ export const permissionRepository = {
r.is_system,
rp.permission_code
FROM roles r
LEFT JOIN role_permissions rp ON rp.role_id = r.id
LEFT JOIN role_permissions rp
ON rp.role_id = r.id AND rp.deleted_at IS NULL
WHERE r.id = ?
AND r.deleted_at IS NULL
ORDER BY rp.permission_code ASC
`,
[roleId],
@@ -126,6 +130,8 @@ export const permissionRepository = {
FROM role_permissions rp
INNER JOIN roles r ON r.id = rp.role_id
WHERE r.code IN (${placeholders})
AND r.deleted_at IS NULL
AND rp.deleted_at IS NULL
ORDER BY rp.permission_code ASC
`,
roleCodes,
@@ -139,7 +145,14 @@ export const permissionRepository = {
permissionCodes: string[],
db: DbExecutor = pool,
): Promise<void> {
await db.execute("DELETE FROM role_permissions WHERE role_id = ?", [roleId]);
await db.execute(
`
UPDATE role_permissions
SET deleted_at = CURRENT_TIMESTAMP(3)
WHERE role_id = ? AND deleted_at IS NULL
`,
[roleId],
);
if (permissionCodes.length === 0) {
return;
@@ -149,6 +162,9 @@ export const permissionRepository = {
`
INSERT INTO role_permissions (role_id, permission_code)
VALUES ${permissionCodes.map(() => "(?, ?)").join(", ")}
ON DUPLICATE KEY UPDATE
deleted_at = NULL,
created_at = CURRENT_TIMESTAMP(3)
`,
permissionCodes.flatMap((permissionCode) => [roleId, permissionCode]),
);