diff --git a/backend/services/planting-service/src/api/api.module.ts b/backend/services/planting-service/src/api/api.module.ts index e8ff162a..0f136fe2 100644 --- a/backend/services/planting-service/src/api/api.module.ts +++ b/backend/services/planting-service/src/api/api.module.ts @@ -2,7 +2,10 @@ import { Module } from '@nestjs/common'; import { PlantingOrderController } from './controllers/planting-order.controller'; import { PlantingPositionController } from './controllers/planting-position.controller'; import { HealthController } from './controllers/health.controller'; -import { ContractSigningController } from './controllers/contract-signing.controller'; +import { + ContractSigningController, + ContractSigningConfigController, +} from './controllers/contract-signing.controller'; import { ApplicationModule } from '../application/application.module'; import { JwtAuthGuard } from './guards/jwt-auth.guard'; @@ -13,6 +16,7 @@ import { JwtAuthGuard } from './guards/jwt-auth.guard'; PlantingPositionController, HealthController, ContractSigningController, + ContractSigningConfigController, ], providers: [JwtAuthGuard], }) diff --git a/backend/services/planting-service/src/api/controllers/contract-signing.controller.ts b/backend/services/planting-service/src/api/controllers/contract-signing.controller.ts index 66960c42..93ee3213 100644 --- a/backend/services/planting-service/src/api/controllers/contract-signing.controller.ts +++ b/backend/services/planting-service/src/api/controllers/contract-signing.controller.ts @@ -10,6 +10,7 @@ import { HttpStatus, Logger, } from '@nestjs/common'; +import { ConfigService } from '@nestjs/config'; import { JwtAuthGuard } from '../guards/jwt-auth.guard'; import { ContractSigningService } from '../../application/services/contract-signing.service'; @@ -31,6 +32,34 @@ interface SignContractDto { }; } +/** + * 合同签署配置控制器(公开接口,不需要认证) + */ +@Controller('planting/contract-signing') +export class ContractSigningConfigController { + private readonly contractSigningEnabled: boolean; + + constructor(private readonly configService: ConfigService) { + // 默认启用合同签署功能 + this.contractSigningEnabled = + this.configService.get('CONTRACT_SIGNING_ENABLED', 'true') === 'true'; + } + + /** + * 获取合同签署配置(公开接口) + * 用于前端判断是否需要在认种前检查实名认证 + */ + @Get('config') + getConfig() { + return { + success: true, + data: { + contractSigningEnabled: this.contractSigningEnabled, + }, + }; + } +} + /** * 合同签署控制器 * diff --git a/frontend/mobile-app/lib/core/services/contract_signing_service.dart b/frontend/mobile-app/lib/core/services/contract_signing_service.dart index 23089052..a1bff286 100644 --- a/frontend/mobile-app/lib/core/services/contract_signing_service.dart +++ b/frontend/mobile-app/lib/core/services/contract_signing_service.dart @@ -131,6 +131,22 @@ class ContractTemplate { } } +/// 合同签署配置 +class ContractSigningConfig { + /// 合同签署功能是否启用 + final bool contractSigningEnabled; + + ContractSigningConfig({ + required this.contractSigningEnabled, + }); + + factory ContractSigningConfig.fromJson(Map json) { + return ContractSigningConfig( + contractSigningEnabled: json['contractSigningEnabled'] ?? true, + ); + } +} + /// 合同签署服务 class ContractSigningService { final ApiClient _apiClient; diff --git a/frontend/mobile-app/lib/features/auth/presentation/pages/sms_verify_page.dart b/frontend/mobile-app/lib/features/auth/presentation/pages/sms_verify_page.dart index 2a0a02e3..9de39f98 100644 --- a/frontend/mobile-app/lib/features/auth/presentation/pages/sms_verify_page.dart +++ b/frontend/mobile-app/lib/features/auth/presentation/pages/sms_verify_page.dart @@ -508,7 +508,8 @@ class _SmsVerifyPageState extends ConsumerState { String _formatPhoneNumber(String phone) { if (phone.length != 11) return phone; - return '${phone.substring(0, 3)} **** ${phone.substring(7)}'; + // 显示完整手机号,用空格分隔便于阅读 + return '${phone.substring(0, 3)} ${phone.substring(3, 7)} ${phone.substring(7)}'; } String _maskPhoneNumber(String phone) {