Files
dukang/server/dukang-api/src/modules/common/client-config.controller.ts
T
jacy 83b1b0e5f6 feat(mini-user): configurable WeChat mini share scenes in system settings
Add HQ group for default and per-page share title/desc/image; expose via client-config and wire all mini-user share entry points.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-06 15:45:57 +08:00

44 lines
1.5 KiB
TypeScript

import { Controller, Get } from '@nestjs/common';
import {
parseMiniHomeBanners,
resolveClientBrandRuntime,
resolveMiniShareRuntime,
} from '@dukang/shared-types';
import { SystemConfigService } from '../../common/system-config/system-config.service';
@Controller('common')
export class ClientConfigController {
constructor(private readonly systemConfig: SystemConfigService) {}
@Get('client-config')
clientConfig() {
const cfg = this.systemConfig.getAppConfig();
const env = this.systemConfig.getMergedEnv();
const footer = (env.MINI_HOME_FOOTER_URL ?? '').trim();
const minClientVersion = (env.MINI_USER_MIN_VERSION ?? '').trim() || null;
const brand = resolveClientBrandRuntime(env);
const share = resolveMiniShareRuntime(env);
return {
mockPay: cfg.mockPay,
wechatPayEnabled: cfg.wechatPayEnabled,
mockSms: cfg.mockSms,
mockWechat: cfg.mockWechat,
wxAuthorize: cfg.wxAuthorize,
/** 可选暴露;选点已改为服务端 /common/lbs,前端可不依赖此字段 */
tencentLbsKey: cfg.tencentLbsKey || undefined,
minClientVersion,
miniHome: {
banners: parseMiniHomeBanners(env.MINI_HOME_BANNERS),
footerUrl: footer || null,
},
userH5Url: brand.userH5Url,
brandLogoUrl: brand.brandLogoUrl,
brandLogoWideUrl: brand.brandLogoWideUrl,
brandLogoMarkUrl: brand.brandLogoMarkUrl,
qualificationDisclosureUrl: brand.qualificationDisclosureUrl,
customerServicePhone: brand.customerServicePhone,
share,
};
}
}