feat(assoc): v4.0.1 合伙人关联码、分佣账单与 H5 用户管理

订单佣金只认关联用户;合伙人备注写入独立表;H5 增加用户管理与首页统计。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-30 14:35:39 +08:00
parent 3b669f7e38
commit 9c8d5f2cad
125 changed files with 6355 additions and 1436 deletions
@@ -18,6 +18,7 @@ export const HqOperationAction = {
HQ_ACCOUNT_UPDATE: 'HQ_ACCOUNT_UPDATE',
HQ_PERMISSION_UPDATE: 'HQ_PERMISSION_UPDATE',
USER_UPDATE: 'USER_UPDATE',
USER_ASSOC_UPDATE: 'USER_ASSOC_UPDATE',
USER_DELETE: 'USER_DELETE',
USER_BATCH_DELETE: 'USER_BATCH_DELETE',
ORDER_SHIP: 'ORDER_SHIP',
@@ -144,6 +145,7 @@ export const HQ_OPERATION_ACTION_LABELS: Record<string, string> = {
[HqOperationAction.HQ_ACCOUNT_UPDATE]: '编辑 HQ 管理员',
[HqOperationAction.HQ_PERMISSION_UPDATE]: '配置 HQ 权限',
[HqOperationAction.USER_UPDATE]: '修改用户备注',
[HqOperationAction.USER_ASSOC_UPDATE]: '修改用户关联合伙人',
[HqOperationAction.USER_DELETE]: '删除用户',
[HqOperationAction.USER_BATCH_DELETE]: '批量删除用户',
[HqOperationAction.ORDER_SHIP]: '订单发货',
@@ -8,13 +8,17 @@ import { Observable, map } from 'rxjs';
@Injectable()
export class ResponseInterceptor implements NestInterceptor {
intercept(_context: ExecutionContext, next: CallHandler): Observable<unknown> {
intercept(context: ExecutionContext, next: CallHandler): Observable<unknown> {
const res = context.switchToHttp().getResponse<{ headersSent?: boolean }>();
return next.handle().pipe(
map((data) => ({
code: 0,
message: 'ok',
data: data ?? null,
})),
map((data) => {
if (res.headersSent) return data;
return {
code: 0,
message: 'ok',
data: data ?? null,
};
}),
);
}
}
@@ -205,7 +205,7 @@ export const SYSTEM_CONFIG_FIELDS: SystemConfigFieldMeta[] = [
type: 'string',
requiresRestart: false,
placeholder: 'https://xxx.oss-cn-beijing.aliyuncs.com/static/mini-user/',
description: '资质公示等静态资源根路径;完整 URL 优先用下方「资质公示图」',
description: '资质公示、开场 GIF 等静态资源根路径;完整 URL 优先用下方「资质公示图」',
},
{
key: 'QUALIFICATION_DISCLOSURE_URL',