# Genex Flutter 管理后台 App 开发指南 > 发行方管理控制台(Issuer Console App) --- ## 1. 产品定位 发行方管理后台App为企业/政府/机构提供**Web2体验**的券发行与管理工具。发行方无需了解区块链技术,发券 = 创建优惠活动,链上铸造在后台自动完成。 **核心设计原则**: - 发行方看到的是"创建优惠活动",不是"链上铸造NFT" - 消费数据隔离:发行方仅可见汇总数据(兑付率、销量),不可见消费者个人信息 - AI Agent深度融合:协助发券建议、定价优化、信用提升 --- ## 2. 技术栈 | 技术 | 用途 | |------|------| | **Flutter 3.x** | 跨平台(iOS/Android),与Consumer App共享核心模块 | | **Riverpod 2.x** | 状态管理 | | **GoRouter** | 路由管理 | | **Dio** | HTTP客户端 | | **Freezed** | 不可变数据模型 | | **fl_chart** | 数据可视化图表 | | **qr_code_scanner** | 扫码核销 | --- ## 3. 项目结构 ``` genex_issuer/ ├── lib/ │ ├── main.dart │ ├── app/ │ │ ├── router.dart # 发行方专用路由 │ │ └── theme/ # 企业端主题(区别于消费者端) │ ├── core/ # 共享核心模块(可从mono-repo引用) │ ├── features/ │ │ ├── auth/ # 企业注册/登录 │ │ ├── onboarding/ # 入驻审核流程 │ │ ├── coupon_management/ # 券管理(核心模块) │ │ │ ├── create/ # 创建券(模板化发券) │ │ │ ├── list/ # 券列表管理 │ │ │ ├── detail/ # 券详情/数据 │ │ │ └── recall/ # 券召回/下架 │ │ ├── redemption/ # 核销管理 │ │ ├── finance/ # 财务管理 │ │ ├── credit/ # 信用评级 │ │ ├── dashboard/ # 数据仪表盘 │ │ ├── ai_agent/ # AI Agent │ │ └── settings/ # 设置 │ └── shared/ # 共享组件 ├── test/ └── pubspec.yaml ``` --- ## 4. 核心功能模块 ### 4.1 企业入驻审核 ```dart // 入驻流程状态机 enum OnboardingStep { companyInfo, // 企业基本信息 documents, // 营业执照/资质文件上传 contactPerson, // 联系人信息 review, // 等待平台审核 approved, // 审核通过 rejected, // 审核拒绝(可重新提交) } // 零保证金入驻:审核通过后给予初始低额度 @freezed class IssuerProfile with _$IssuerProfile { const factory IssuerProfile({ required String id, required String companyName, required String businessLicense, required CreditRating creditRating, // 信用等级 required double issuanceQuota, // 发行额度 required IssuerTier tier, // 白银/黄金/铂金/钻石 required OnboardingStep onboardingStep, }) = _IssuerProfile; } enum CreditRating { AAA, AA, A, BBB, BB } enum IssuerTier { silver, gold, platinum, diamond } ``` ### 4.2 模板化发券 > 发行方通过Web2界面创建券,无需了解NFT/ERC标准。 ```dart // 券模板类型 enum CouponTemplate { discount, // 折扣券 voucher, // 代金券 giftCard, // 礼品卡 storedValue, // 储值券 } @freezed class CreateCouponParams with _$CreateCouponParams { const factory CreateCouponParams({ required CouponTemplate template, required String name, required double faceValue, required DateTime expiryDate, // ≤12个月(Utility Track强制) required int quantity, // 发行数量 double? issuePrice, // 发行价(通常折价) bool? transferable, // 是否允许转让(默认可转让) int? maxResaleCount, // 最大转售次数(默认2-3次) bool? stackable, // 是否可叠加使用 double? minPurchaseAmount, // 最低消费金额 List? allowedStoreIds, // 限定门店 String? description, String? imageUrl, }) = _CreateCouponParams; } ``` ```dart // 发券流程 // 选择模板 → 填写信息 → 设定规则 → 预览 → 提交审核 → 审核通过 → 自动链上铸造+上架 class CreateCouponUseCase { Future> call(CreateCouponParams params) async { // 前端校验 if (params.expiryDate.difference(DateTime.now()).inDays > 365) { return Left(Failure.validation( errors: {'expiryDate': 'Utility Track有效期不得超过12个月'}, )); } return _repo.submitCouponDraft(params); // 后端:审核通过 → 自动调用CouponFactory合约铸造(发行方无感知) } } ``` ### 4.3 数据仪表盘 ```dart // 发行方数据概览 @freezed class IssuerDashboard with _$IssuerDashboard { const factory IssuerDashboard({ required int totalIssued, // 总发行量 required int totalRedeemed, // 总核销量 required double redemptionRate, // 兑付率 required double breakageRate, // Breakage率 required double totalRevenue, // 总销售收入 required double availableBalance, // 可提现余额 required CreditRating creditRating, // 信用等级 required double quotaUsed, // 已用额度 required double quotaTotal, // 总额度 }) = _IssuerDashboard; } ``` ### 4.4 财务管理 ```dart // 财务视图:法币展示,不暴露链上稳定币细节 @freezed class FinanceOverview with _$FinanceOverview { const factory FinanceOverview({ required double salesRevenue, // 销售收入 required double pendingSettlement, // 待结算 required double withdrawable, // 可提现 required double totalWithdrawn, // 已提现 required List recentTransactions, }) = _FinanceOverview; } ``` ### 4.5 信用评级展示 ```dart // 四因子信用评分:核销率35% + (1-Breakage率)25% + 市场存续20% + 用户满意度20% class CreditScoreWidget extends StatelessWidget { final CreditDetail credit; @override Widget build(BuildContext context) { return Column(children: [ // 总分和等级 CreditScoreGauge(score: credit.totalScore, rating: credit.rating), // 四因子明细 FactorBar(label: '核销率', value: credit.redemptionRate, weight: 0.35), FactorBar(label: '沉淀控制', value: 1 - credit.breakageRate, weight: 0.25), FactorBar(label: '市场存续', value: credit.tenureScore, weight: 0.20), FactorBar(label: '用户满意度', value: credit.satisfaction, weight: 0.20), ]); } } ``` --- ## 5. AI Agent 集成 ### 5.1 发行方AI Agent场景 | 场景 | AI能力 | UI实现 | |------|--------|--------| | 发券建议 | 分析市场趋势,建议发券时间/面值/折扣/数量 | 发券中心顶部AI建议卡片 | | 定价优化 | 三因子模型+AI定价引擎,提供最优定价策略 | 创建券时AI推荐价格+对比分析 | | 信用提升 | 分析信用评分各维度,给出改善建议 | 信用等级页面AI建议列表 | | 销售分析 | 智能解读销售数据,发现异常和机会 | 数据中心AI洞察卡片 | | 额度规划 | 预测额度消耗速度,建议补充计划 | 额度页面AI规划时间线 | | 合规助手 | 提醒合规要求,辅助材料准备 | 入驻审核时AI检查清单 | ### 5.2 AI建议卡片组件 ```dart class AiSuggestionCard extends StatelessWidget { final AiSuggestion suggestion; final VoidCallback onAccept; final VoidCallback onDismiss; @override Widget build(BuildContext context) { return Card( child: Column(children: [ Row(children: [ Icon(Icons.smart_toy, color: Colors.blue), Text('AI建议', style: Theme.of(context).textTheme.titleSmall), ]), Text(suggestion.content), if (suggestion.actionable) Row(children: [ TextButton(onPressed: onDismiss, child: Text('忽略')), ElevatedButton(onPressed: onAccept, child: Text('采纳')), ]), ]), ); } } ``` --- ## 6. 发行方分层激励展示 | 层级 | 月发行量 | 手续费率 | 增值服务 | |------|---------|---------|---------| | 白银 | < 100万 | 1.5% | 基础数据看板 | | 黄金 | 100-500万 | 1.2% | 高级数据分析+推荐位 | | 铂金 | 500-2000万 | 1.0% | 专属客服+定制报表 | | 钻石 | > 2000万 | 0.8% | 定制开发+专属API+联合营销 | > 新入驻发行方首月享黄金层级手续费(获客激励)。 --- ## 7. 与Consumer App共享 | 共享模块 | 内容 | |---------|------| | `core/network/` | Dio配置、拦截器 | | `core/storage/` | 本地存储封装 | | `core/constants/` | 术语映射、API地址 | | `shared/widgets/` | 通用UI组件 | | `shared/models/` | Coupon、User等共享模型 | 通过Dart Package或Mono-repo方式实现代码共享。 --- ## 8. 测试与发布 - 单元测试:发券参数校验、信用评分计算、额度校验 - Widget测试:发券表单、仪表盘图表 - 集成测试:完整发券流程、核销流程 - 发布通道:与Consumer App独立(不同App ID,不同签名) --- *文档版本: v1.0* *基于: Genex 券交易平台 - 软件需求规格说明书 v4.1* *技术栈: Flutter 3.x + Riverpod + Clean Architecture*