当前位置:首页>鸿蒙APP>鸿蒙仓颉编程语言挑战赛三等奖作品:MeetWise智能会议助手

鸿蒙仓颉编程语言挑战赛三等奖作品:MeetWise智能会议助手

  • 2026-02-26 06:29:26
鸿蒙仓颉编程语言挑战赛三等奖作品:MeetWise智能会议助手

01

一、 团队介绍

我们是来自金陵科技学院的五人开发团队,在本次鸿蒙仓颉挑战赛中凭借MeetWise智能会议助手项目获得佳绩。

团队成员:

  • 徐州(队长):项目总体规划与核心业务全流程开发,负责AI服务层(IFlyTekService.cj、LLMService.cj)的对接与封装,以及录音详情页、待办模块和笔记模块的全栈开发

  • 朱欣龙(全栈开发工程师):聚焦录音交互与数据基础设施,主导Recording.ets页面的交互逻辑实现,管理录音状态机,开发登录/注册模块及用户数据管理,设计基于RdbStore(SQLite)的本地存储方案

  • 宋忠呈(前端与动效设计师):负责个人中心模块开发(MinePage.ets、ProfilePage.ets、SettingsPage.ets),基于ArkUI Canvas组件优化录音时的实时声波纹动效,提升用户视觉体验

  • 唐志颖(核心逻辑与优化工程师):参与RecordingLogic.cj的开发,优化AudioCapturer音频流采集逻辑,针对讯飞转写结果进行去重算法优化,提升实时文字上屏速度与准确率,负责录音功能的稳定性测试与错误修复

  • 吴仔琪(产品与设计师):负责UI/UX高保真原型设计,制定应用视觉规范,梳理项目技术架构,总结ArkTS与Cangjie混合开发的最佳实践,制作项目路演PPT,剪辑与后期制作产品演示视频

02

二、项目核心

Why:开发初衷

在数字化办公时代,会议记录与信息整理成为职场痛点。传统录音工具缺乏智能化处理能力,无法满足高效会议管理需求。我们致力于打造一款集实时转写、智能摘要、任务管理于一体的智能会议助手,解决以下核心问题:

  1. 会议记录效率低下:传统手写记录方式耗时费力,容易遗漏关键信息

  2. 信息检索困难:纯音频文件难以快速定位特定内容

  3. 会议成果转化慢:会后整理会议纪要需要大量人工操作

  4. 任务跟进缺失:会议中产生的待办事项难以有效跟踪

What:核心功能

实时语音转写:集成讯飞开放平台实时转写能力,准确率达95%以上

AI智能摘要:基于智谱GLM-4大模型生成会议摘要,自动提取关键信息点

笔记编辑:以瀑布流或列表形式展示用户创建的会议笔记。

待办事项管理: 支持“全部”、“进行中”、“已完成”标签切换。

已关注
关注
重播 分享

How:关键技术

项目采用HarmonyOS原生开发架构,融合ArkTS与Cangjie语言优势:

AI服务层封装(IFlyTekService.cj

 // 讯飞实时转写服务封装示例 public class IFlyTekService {    private var socketClient: WebSocketClient;    private var transcriptionBuffer: MutableList<String>;    public func initialize(): Result<Void, Error> {        // 初始化WebSocket连接        this.socketClient = new WebSocketClient();        this.transcriptionBuffer = newMutableList<String>();        // 配置连接参数        this.socketClient.setUrl("wss://api.iflyrec.com/ws/v1");        this.socketClient.setOnMessageListener((message:String) -> {            // 处理转写结果this.handleTranscriptionResult(message);        });        return Result.success(());    }    public func startRealTimeTranscription(audioStream: AudioStream):Result<Void, Error> {        // 开始实时转写逻辑        try {            this.socketClient.connect();            // 启动音频流采集            audioStream.startCapture((data:AudioData) -> {                // 发送音频数据到服务器this.sendAudioData(data);            });            return Result.success(());        } catch (error) {            return Result.failure(error);        }    }    private func sendAudioData(data: AudioData): Void {        // 将音频数据转换为Base64并发送        var base64Data = Base64.encode(data.buffer);        this.socketClient.send(base64Data);    }    private func handleTranscriptionResult(message: String): Void {        // 解析转写结果并更新UI        var result = Json.parse(message);        var text = result.get("text").asString();        if (!text.isEmpty()) {            this.transcriptionBuffer.add(text);            // 通知UI更新            EventManager.emit("transcriptionUpdate",text);        }    } }

大语言模型服务封装(LLMService.cj)

  // 智谱GLM-4摘要服务封装 public class LLMService {    private var httpClient: HttpClient;    private var apiKey: String;    public func initialize(apiKey: String): Result<Void, Error> {        this.apiKey = apiKey;        this.httpClient = new HttpClient();        return Result.success(());    }    public func generateSummary(transcript: String): Result<String, Error> {        var request = new HttpRequest();        request.setMethod(HttpMethod.POST);        request.setUrl("https://open.bigmodel.cn/api/paas/v4/chat/completions");        // 构建请求体        var requestBody = Json.object()            .set("model""glm-4")            .set("messages", Json.array(                Json.object()                    .set("role""system")                    .set("content""你是会议纪要助手,请根据会议内容生成简洁准确的摘要"),                Json.object()                    .set("role""user")                    .set("content""请根据以下会议内容生成摘要:\n\n" + transcript)            ))            .set("temperature"0.7);        request.setBody(requestBody.toString());        request.setHeader("Authorization""Bearer " + this.apiKey);        request.setHeader("Content-Type""application/json");        try {            var response = this.httpClient.execute(request);            var result = Json.parse(response.getBody());            var summary = result.get("choices").get(0).get("message").get("content").asString();            return Result.success(summary);        } catch (error) {            return Result.failure(error);        }    } }

数据库访问对象(MeetingRecordDAO.ets)

import { RdbStoreRdbPredicates } from '@kit.ArkData';import { MeetingRecord } from '../model/MeetingRecord';const TABLE_NAME = 'meeting_records';const CREATE_TABLE_SQL = `   CREATE TABLE IF NOT EXISTS ${TABLE_NAME} (     id INTEGER PRIMARY KEY AUTOINCREMENT,     title TEXT NOT NULL,     content TEXT,     createTime INTEGER,     audioPath TEXT,     summary TEXT   ) `;export class MeetingRecordDAO {private rdbStoreRdbStore;constructor(rdbStoreRdbStore) {this.rdbStore = rdbStore; }async createTable(): Promise<void> {await this.rdbStore.executeSql(CREATE_TABLE_SQL, []); }async insert(recordMeetingRecord): Promise<number> {     const valuesBucket = {       'title': record.title,       'content': record.content,       'createTime': record.createTime,       'audioPath': record.audioPath,       'summary': record.summary || ''    };     return await this.rdbStore.insert(TABLE_NAME, valuesBucket);  }async queryAll(): Promise<MeetingRecord[]> {const predicates = new dataRdb.RdbPredicates(TABLE_NAME);const resultSet = await this.rdbStore.query(predicates);return this.mapResultSetToRecords(resultSet);  }async queryById(idnumber): Promise<MeetingRecord | null> {const predicates = new dataRdb.RdbPredicates(TABLE_NAME) .equalTo('id', id);const resultSet = await this.rdbStore.query(predicates);     const records = this.mapResultSetToRecords(resultSet);     return records.length > 0 ? records[0] : null;  }async update(recordMeetingRecord): Promise<number> {const valuesBucket = {'title': record.title,       'content': record.content,       'createTime': record.createTime,       'audioPath': record.audioPath,       'summary': record.summary    };     const predicates = new dataRdb.RdbPredicates(TABLE_NAME)      .equalTo('id', record.id);     return await this.rdbStore.update(valuesBucket, predicates);  }async delete(idnumber): Promise<number> {const predicates = new dataRdb.RdbPredicates(TABLE_NAME) .equalTo('id', id);return await this.rdbStore.delete(predicates);  }private mapResultSetToRecords(resultSet: dataRdb.ResultSet): MeetingRecord[] {const recordsMeetingRecord[] = [];if (resultSet.rowCount > 0) {while (resultSet.goToNextRow()) {const recordMeetingRecord = {           id: resultSet.getLong(resultSet.getColumnIndex('id')),           title: resultSet.getString(resultSet.getColumnIndex('title')),           content: resultSet.getString(resultSet.getColumnIndex('content')),           createTime: resultSet.getLong(resultSet.getColumnIndex('createTime')),           audioPath: resultSet.getString(resultSet.getColumnIndex('audioPath')),           summary: resultSet.getString(resultSet.getColumnIndex('summary'))        };         records.push(record);      }    }     return records;  } }

音频播放器(AudioPlayer.cj)

// 音频播放器封装 public class AudioPlayer {    private var player: AVPlayer;    private var currentPosition: Int64;    private var duration: Int64;    public func initialize(): Result<Void, Error> {        this.player = new AVPlayer();        this.currentPosition = 0;        this.duration = 0;        // 设置播放状态监听        this.player.setOnPlayEventListener((event: PlayEvent) -> {            switch (event.getType()) {                case PlayEvent.Type.PLAY:                    EventManager.emit("playStarted", ());                    break;                case PlayEvent.Type.PAUSE:                    EventManager.emit("playPaused", ());                    break;                case PlayEvent.Type.STOP:                    EventManager.emit("playStopped", ());                    break;                case PlayEvent.Type.COMPLETION:                    EventManager.emit("playCompleted", ());                    break;            }        });        return Result.success(());    }    public func loadAudio(filePath: String): Result<Void, Error> {        try {            var source = new AVSource();            source.setSourceFromUri(filePath);            this.player.setAVSource(source);            this.player.prepare();            this.duration = this.player.getDuration();            return Result.success(());        } catch (error) {            return Result.failure(error);        }    }    public func play(): Result<Void, Error> {        try {            this.player.play();            return Result.success(());        } catch (error) {            return Result.failure(error);        }    }    public func pause(): Result<Void, Error> {        try {            this.player.pause();            return Result.success(());        } catch (error) {            return Result.failure(error);        }    }    public func stop(): Result<Void, Error> {        try {            this.player.stop();            return Result.success(());        } catch (error) {            return Result.failure(error);        }    }    public func seekTo(position: Int64): Result<Void, Error> {        try {            this.player.seek(position, SeekMode.EXACTLY);            this.currentPosition = position;            return Result.success(());        } catch (error) {            return Result.failure(error);        }    }    public func getCurrentPosition(): Int64 {        return this.player.getCurrentTimeMs();    }    public func getDuration(): Int64 {        return this.duration;    } }

03

三、项目创新点

1. HarmonyOS NEXT 原生“双引擎”架构

首创 ArkTS(声明式 UI)与 Cangjie(高性能逻辑)混合架构。ArkTS 确保交互丝滑,仓颉处理高并发逻辑,实现了表现层与逻辑层的彻底解耦。

2. 智能会议全链路生产力闭环

打通了“高清录音 → 实时精准转写 → AI 摘要生成 → 结构化笔记/待办持久化”的端到端自动化流程,将传统碎片化的会议整理工作效率提升 10 倍以上。

3. 基于物理信号的非线性波形渲染

基于 PCM 采样数据,通过 RMS 均方根计算与对数分贝(dB)转换算法驱动视觉波形,提供工业级、真实起伏的交互反馈。

04

四、核心难点攻克

1. 软硬件协同下的架构转型

挑战 :初期尝试全仓颉开发录音功能,但受限于生态初期仓颉对底层硬件 API(AudioCapturer)的调用限制。

攻克 :果断切换为“硬件接口层(ArkTS)+ 核心处理层(仓颉)”架构。由 ArkTS 稳定采集流数据,透传给仓颉引擎进行高性能分贝计算、加密及 AI 处理,确保了功能的完整性与运行的高效率。

2. 跨语言高频数据同步与性能优化

挑战 :每秒上万个采样点的分贝数据及转写片段跨语言传输易导致 UI 卡顿。

攻克 :在 RecordingLogic.cj 中设计了节流回调机制,利用仓颉轻量级线程处理计算任务,确保了在复杂后台逻辑运行时,UI 列表滑动依然维持在 60 帧。

3. 实时转写结果的“去重与智能合并”算法

挑战 :网络波动导致的 WebSocket 乱序与重复推送会造成界面文字“跳变”闪烁。

攻克 :设计了基于 seg_id 的状态机管理策略,通过智能判断“中间态”与“最终态”文本进行按需刷新,将 UI 无效刷新率降低了 60%。

4. 极端环境下的“录音不丢失”稳定性保障

挑战 :应对断网、内存溢出或意外崩溃等极端场景,确保用户核心数据资产安全。

攻克 :采用“物理写入与在线转写分离”技术,配合指数退避重连算法。即使网络彻底中断, MeetingRecordDAO.ets 也能确保本地音频文件安全存盘。

5. 应用级全局状态的响应式同步

挑战 :多页面间用户信息、录音状态、业务数据的一致性同步难题。

攻克 :基于鸿蒙原生 StorageLink 构建应用级状态总线,建立单源数据池。实现了个人资料、业务状态在全应用内的实时感知与无感同步。

05

五、 感悟经验

1.  技术选型的重要性:

ArkTS+Cangjie的组合为项目提供了强大的性能基础,合理的技术架构是项目成功的关键。HarmonyOS的分布式能力也为我们的应用扩展提供了想象空间。

2.  团队协作的力量:

清晰的职责分工与高效的沟通机制,让我们能够在短时间内完成复杂功能的开发。每周的代码评审和进度同步确保了项目质量与进度。

3.  用户体验导向:

从用户实际需求出发,不断迭代优化功能,才是产品价值的核心所在。我们在开发过程中多次进行用户测试,根据反馈调整产品方向。

4.  持续学习精神:

面对新技术栈和复杂的AI集成,团队成员始终保持学习热情,通过官方文档、社区交流等方式快速掌握所需技能。

06

六、项目源码地址:

https://openatom.tech/cangjiechallenge/06ecb1ed6d7c99e118db3b63e3339ba5.git

领取仓颉专属红包封面

发放时间2月12日 20:00

定好闹钟~扫码领取~

发放时间2月13日 12:00

定好闹钟~扫码领取~

发放时间2月13日 20:00

定好闹钟~扫码领取~

往期文章:

鸿蒙仓颉编程语言挑战赛圆满收官:创新应用引领智慧办公新生态

鸿蒙仓颉编程语言挑战赛一等奖作品:MeetAI-基于Cangjie的智能会后整理助手

鸿蒙仓颉编程语言挑战赛二等奖作品 :以仓颉之码,筑智慧学园——基于仓颉与OpenHarmony的智慧校园协同管控系统实践

鸿蒙仓颉编程语言挑战赛二等奖作品:TaskGenie 打造基于仓颉语言的智能办公“任务中枢”

鸿蒙仓颉编程语言挑战赛三等奖作品:基于仓颉语言的AI智能办公协同平台实战

鸿蒙仓颉编程语言挑战赛三等奖作品:安全会议助手

鸿蒙仓颉编程语言挑战赛获奖作品:基于仓颉语言开发的鸿蒙原生应用——《仓颉迹》开发实践

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-03 19:06:18 HTTP/2.0 GET : https://c.mffb.com.cn/a/469465.html
  2. 运行时间 : 0.198255s [ 吞吐率:5.04req/s ] 内存消耗:4,364.73kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=5d29e7d4acef49be0ee877a08f9807c1
  1. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/runtime/temp/cefbf809ba1a84190cb04b0cb7abcf79.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.001030s ] mysql:host=127.0.0.1;port=3306;dbname=c_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001522s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000612s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000587s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001163s ]
  6. SELECT * FROM `set` [ RunTime:0.000449s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001344s ]
  8. SELECT * FROM `article` WHERE `id` = 469465 LIMIT 1 [ RunTime:0.000963s ]
  9. UPDATE `article` SET `lasttime` = 1772535978 WHERE `id` = 469465 [ RunTime:0.001362s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000523s ]
  11. SELECT * FROM `article` WHERE `id` < 469465 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.007235s ]
  12. SELECT * FROM `article` WHERE `id` > 469465 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001028s ]
  13. SELECT * FROM `article` WHERE `id` < 469465 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001281s ]
  14. SELECT * FROM `article` WHERE `id` < 469465 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.034233s ]
  15. SELECT * FROM `article` WHERE `id` < 469465 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.002295s ]
0.201983s