当前位置:首页>java>AI 时代,编程不重要,思维才是核心!0基础如何用提示词思维 3 天搭建企业级 SaaS 系统:“签了么”

AI 时代,编程不重要,思维才是核心!0基础如何用提示词思维 3 天搭建企业级 SaaS 系统:“签了么”

  • 2026-01-31 19:16:48
AI 时代,编程不重要,思维才是核心!0基础如何用提示词思维 3 天搭建企业级 SaaS 系统:“签了么”

🧠 AI 时代,编程不重要,思维才是核心!0基础如何用提示词思维 3 天搭建企业级 CRM SaaS 系统?


🧠 AI时代:编程不重要,思维才是核心竞争力

过去,做一个 CRM 系统需要:

懂数据库设计
会写后端API
精通前端框架
熟悉各种开发工具
至少3-5年开发经验

现在,有了 AI,你需要的是:

✅ 业务逻辑梳理能力 - 清楚你的业务流程是什么✅ 工作流设计能力 - 把业务流程拆解成可执行的步骤✅ 提示词思维能力 - 能够用清晰的语言把需求告诉 AI✅ 沟通澄清能力 - 不断优化表达,让 AI 理解你的真实需求

🎯 这篇文章的核心价值

我不是在教你写代码,而是在教你:

1
如何思考 - 如何把一个复杂的业务系统拆解成可管理的模块
2
如何表达 - 如何用提示词准确描述你的需求
3
如何验证 - 如何判断 AI 给出的方案是否符合你的预期
4
如何迭代 - 如何通过不断优化,逐步完善系统

📚 什么是提示词思维?

传统编程思维

我需要写一个函数,接收参数 x,返回 yfunction(x) { return y; }

提示词思维

我需要管理客户信息,包括:- 客户基本信息(姓名、电话、邮箱)- 客户来源(线上、线下、转介绍)- 客户状态(潜在、跟进中、成交、流失)- 客户跟进记录(时间、内容、结果)请帮我设计一个数据结构来存储这些信息

关键区别

传统思维关注怎么实现(how)
提示词思维关注想要什么(what)
AI 会帮你解决怎么实现的问题

🔧 工具只是载体,思维才是根本

这篇文章里,我用到了:

扣子(AI 智能体平台)
Next.js(前端框架)
PostgreSQL(数据库)
Drizzle ORM(数据库工具)

但你可以替换成任何工具!

只要你掌握了:

如何梳理业务逻辑
如何设计工作流
如何用提示词沟通

换成 GPT + 其他框架,照样能做出来!

因为核心不是工具,而是思维!


🤖 AI 工具:扣子空间

这个项目我全程使用扣子空间来完成!扣子是字节跳动推出的 AI 智能体开发平台,可以快速创建 AI 助手,无需编程基础。

为什么要用扣子?

✅ 零代码开发,拖拽式操作
✅ 支持多种大模型
✅ 内置丰富的插件和知识库
✅ 可以快速构建 AI 应用
✅ 完全免费,性能强大

工具网址点击:

 https://www.coze.cn/studio?invite_code=a544f79972774b1a9957a5341d0de215 


💥 为什么做这个项目?

痛点一:中小企业想上 CRM 系统,动不动几万甚至几十万,用不起!痛点二:开源的太复杂,配置一个环境就要搞半天痛点三:找外包开发,预算10万起步,周期至少3个月

我想:能不能用 AI 自己做一个?

答案是:可以!而且只要3天!

🎯 但是重点不是"做",而是"想"

很多人问我:你 0 编程基础,3 天怎么做到的?

我的回答是:因为我花了很多时间在想,而不是在做!

这 3 天的时间分配:

思考业务逻辑:1天
梳理工作流程:0.5天
设计提示词:0.5天
让 AI 帮我生成代码:1天(大部分时间在喝咖啡)

📊 业务逻辑 vs 技术实现

传统开发者
我(用 AI)
学习数据库 2 周
我只需想清楚:需要存什么数据
学习框架 3 周
我只需想清楚:需要什么功能
写代码调试 1 个月
我只需问 AI:怎么实现这个功能
总计:2-3 个月
总计:3 天

关键区别

传统开发者:花 90% 的时间在学"怎么做"
我:花 90% 的时间在想"要什么"

🧠 提示词思维的核心

不是让 AI 替代你思考,而是用 AI 帮你实现你想清楚的

正确的流程:

1. 我思考清楚业务逻辑(思考)2. 我把逻辑表达给 AI(表达)3. AI 帮我生成代码(实现)4. 我验证是否符合预期(验证)5. 不断优化表达(迭代)

错误的流程:

1. 我不知道要什么(迷茫)2. 我问 AI:帮我做一个 CRM(模糊)3. AI 给出一堆代码(混乱)4. 我看不懂,不知道怎么改(挫败)5. 放弃(失败)

💡 思维案例对比:做一个客户管理功能

传统程序员的思路(关注"怎么做")

1. 学习数据库设计(1周)   - 什么是主键、外键、索引   - 如何设计 ER 图   - 如何优化查询性能2. 学习后端开发(2周)   - RESTful API 设计规范   - 如何写 CRUD 接口   - 如何处理异常3. 学习前端框架(2周)   - React 组件化开发   - 状态管理   - 路由设计4. 写代码调试(2周)   - 查阅文档   - 修复 bug   - 优化代码总计:7周(35个工作日)

提示词思维的思路(关注"要什么")

1. 思考:客户管理需要什么?(30分钟)   - 客户基本信息:姓名、电话、邮箱、公司   - 客户状态:潜在、跟进中、成交、流失   - 客户来源:线上、线下、转介绍   - 客户跟进记录:时间、内容、结果2. 表达:用提示词描述需求(10分钟)

我需要做一个客户管理功能,包括:

客户基本信息录入和展示
客户状态筛选
客户来源统计
客户跟进记录

请帮我设计数据库表结构和 API 接口

3. 验证:检查 AI 的输出是否符合预期(30分钟)- 查看数据库表是否包含所有字段- 查看接口设计是否合理- 如有问题,继续用提示词优化4. 迭代:让 AI 生成前端页面(30分钟)

请帮我创建一个客户管理页面,包括:

客户列表展示
筛选功能(状态、来源)
新增客户按钮
客户详情弹窗
总计:2小时

对比结果

维度
传统程序员
提示词思维
时间
7周
2小时
核心工作
学习技术
思考需求
关键能力
编程能力
表达能力
可复用性
仅限编程
所有领域
学习成本

关键洞察

传统程序员在解决"怎么做"的问题

如何写 SQL 查询
如何设计 API
如何写 React 组件

提示词思维在解决"要什么"的问题

我需要管理客户什么信息
我需要什么样的筛选功能
我需要什么样的数据展示

AI 帮你解决了"怎么做"的问题!


🎯 思维训练小练习

练习1:从模糊到清晰

模糊表达(❌)

帮我做一个订单管理功能

清晰表达(✅)

我需要做一个订单管理功能,要求:1. 订单基本信息:订单号、客户、金额、状态2. 订单状态:待支付、已支付、已发货、已完成、已退款3. 支付方式:微信、支付宝、银行转账4. 发货信息:快递单号、物流状态请帮我设计数据库表和基本 API 接口

练习2:从混乱到结构化

混乱表达(❌)

我想要用户管理,还有角色,还有权限,用户可以有很多角色,每个角色有很多权限,还要能新增删除编辑...

结构化表达(✅)

我需要实现权限管理,包括:1. 用户管理   - 用户基本信息:姓名、邮箱、手机   - 用户状态:启用、禁用2. 角色管理   - 角色名称、描述   - 角色状态3. 权限管理   - 权限名称、描述   - 权限分类4. 关系设计   - 一个用户可以有多个角色   - 一个角色可以有多个权限请给出:- 3个表的结构设计- 表之间的关联关系

练习3:从单一到全面

单一表达(❌)

帮我写一个登录接口

全面表达(✅)

我需要实现登录功能,要求:1. 登录方式   - 邮箱 + 密码   - 手机号 + 验证码2. 登录成功后返回   - 用户基本信息   - 登录令牌(token)   - 用户角色列表3. 安全要求   - 密码加密存储   - 登录失败次数限制   - Token 过期时间 24 小时4. 异常处理   - 账号不存在   - 密码错误   - 账号被禁用请给出完整的接口设计

💡 思维训练的关键

1
先想清楚"要什么",再问 AI "怎么做"
2
结构化表达,用清晰的分类和列表
3
提供上下文,让 AI 理解你的真实需求
4
明确约束条件,避免 AI 给出不符合要求的方案

你现在就可以试试!打开 AI 工具,用上面的提示词练习一下!

https://www.coze.cn/studio?invite_code=a544f79972774b1a9957a5341d0de215 


🎯 最终成果展示

SaaS系统免费体验申请,可以添加作者微信:ERPers00001。

先看看我做出了什么:

📊 系统功能

✅ 多租户架构 - 一个系统支持多个公司独立使用✅ 客户管理 - 完整的客户生命周期管理✅ 销售漏斗 - 可视化商机跟踪,预测成交金额✅ 合同管理 - 合同签订、到期提醒✅ 支付管理 - 支付记录、逾期提醒✅ 权限系统 - 5种角色,精细化权限控制✅ 交互记录 - 完整的客户沟通历史✅ 工作流 - 自动化业务流程

💻 技术栈

前端:Next.js 16 + React 19 + shadcn/ui(超漂亮的UI组件库)
后端:PostgreSQL + Drizzle ORM
AI 集成:大语言模型(豆包)
部署:一键上线

🏗️ 数据库设计

15 个核心数据表,完整的业务闭环:

租户 → 用户 → 线索 → 客户 → 商机 → 合同 → 支付         ↓      权限系统(角色 + 权限)         ↓      交互记录 + 工作流

📸 系统界面展示

1. 登录页面

登录页面
简洁大气的登录界面,支持邮箱快速登录

2. Dashboard 仪表盘

Dashboard
数据可视化,关键指标一目了然

3. 客户管理页面

客户管理
完整的客户生命周期管理

4. 销售漏斗

销售漏斗
可视化商机跟踪,预测成交金额

5. 合同管理

合同管理
合同签订、到期提醒

6. 支付管理

支付管理
支付记录、逾期提醒

7. 权限管理

权限管理
5种角色,精细化权限控制

8. 交互记录

交互记录
完整的客户沟通历史

📝 完整开发步骤 + AI 提示词

每个步骤的核心都是:思考 → 表达 → 验证 → 迭代不是教你用工具,而是教你如何思考!


第1步:需求调研(30分钟)

💡 思考重点

这一步的核心不是"学工具",而是:

想清楚目标用户是谁?
想清楚核心业务流程是什么?
想清楚核心功能有哪些?

提示词思维的关键:把模糊的想法变成清晰的问题

🤖 AI 提示词 1:需求梳理

我想要做一个SaaS CRM系统,目标用户是中小型企业。请帮我梳理:1. 核心功能模块有哪些?(至少6个)2. 每个模块需要哪些功能点?3. 用户角色有哪些?每个角色的权限是什么?4. 数据表应该如何设计?5. 技术栈应该如何选择?要求:- 功能要实用,不追求大而全- 要支持多租户(一个系统多个公司用)- 要考虑后续扩展性- 输出思维导图结构

🎯 提示词解析

这个提示词的设计逻辑:

1
背景:我做什么系统,给谁用
2
问题:列出5个明确的问题
3
约束:3个明确的限制条件
4
输出格式:思维导图结构

关键:问题越具体,AI 的回答越准确!

🎯 输出结果

核心模块:1. 租户管理(多租户基础)2. 用户管理 + 权限系统3. 客户管理(线索 + 客户)4. 销售流程(商机 + 合同 + 支付)5. 交互记录(客户沟通历史)6. 工作流(自动化流程)技术栈推荐:- 前端:Next.js 16 + React 19 + shadcn/ui- 数据库:PostgreSQL- ORM:Drizzle- UI:Tailwind CSS

第2步:项目初始化(10分钟)

💡 思考重点

这一步的核心不是"学框架",而是:

想清楚项目的技术选型
想清楚项目的目录结构
想清楚开发环境的配置

提示词思维的关键:把技术需求翻译成 AI 能理解的语言

🤖 AI 提示词 2:项目初始化

帮我初始化一个 Next.js 16 项目,要求:1. 使用 TypeScript2. 启用 src 目录3. 使用 Tailwind CSS4. 预装 shadcn/ui 组件库5. 配置好开发环境请给出完整的初始化命令和项目结构。

🎯 提示词解析

这个提示词的设计逻辑:

1
技术栈:明确指定 Next.js 16
2
具体要求:列出5个配置项
3
输出:命令 + 项目结构

关键:你不需要懂这些技术是做什么的,只需要知道"我需要这些配置"

💡 为什么不需要懂技术?

就像你不需要懂汽车引擎原理,只需要知道:

我要自动挡
我要GPS导航
我要倒车雷达

技术细节让 AI 处理,你只需要提出需求!

✅ 执行命令

coze init ${COZE_WORKSPACE_PATH} --template nextjs

🎯 输出结果

项目结构:src/├── app/           # 页面和路由├── components/    # 可复用组件│   └── ui/        # shadcn/ui 组件├── lib/           # 工具函数├── storage/       # 数据存储层└── styles/        # 样式文件

第3步:数据库设计(2小时)

💡 思考重点(最重要的一步!)

这一步是整个项目的核心,花的时间最长:

想清楚业务流程:从线索到成交,数据怎么流转?
想清楚数据关系:表之间怎么关联?
想清楚字段设计:需要存哪些信息?

提示词思维的关键:把业务逻辑翻译成数据结构

💡 为什么数据库设计最重要?

传统开发者:先写代码,再改数据库,反复修改AI 时代的我:先设计好数据库,后面的代码自动生成

原因

数据库是系统的"骨架"
骨架设计好,"肉"(代码)怎么都好长
骨架设计不好,后面全是坑!

🤖 AI 提示词 3:数据库表设计

我要为SaaS CRM系统设计数据库表,需要满足:1. 支持多租户(共享数据库、共享Schema)2. 包含租户、用户、角色、权限等基础表3. 包含线索、客户、商机、合同、支付等业务表4. 包含交互记录、工作流等辅助表请用 PostgreSQL 语法给出完整的建表 SQL,要求:1. 使用 UUID 作为主键2. 包含 created_at 和 updated_at 时间戳3. 为常用字段添加索引4. 添加外键约束5. 为每个字段添加注释输出格式:-- 表名:中文说明CREATE TABLE ...

🎯 提示词解析

这个提示词的设计逻辑:

1
业务需求:多租户 + 基础表 + 业务表 + 辅助表
2
技术约束:5个明确的技术要求
3
输出格式:带注释的 SQL

关键

你不需要懂 SQL 语法
你只需要想清楚"我要存什么数据"
AI 会帮你写出完美的 SQL

💡 我的思考过程

问题1:为什么需要多租户?

因为一个系统要给多个公司用
每个公司的数据要隔离
所以需要 tenants 表

问题2:用户和租户是什么关系?

一个租户可以有多个用户
一个用户只能属于一个租户
所以 users 表要有 tenant_id 外键

问题3:销售流程是怎样的?

线索 → 客户 → 商机 → 合同 → 支付
所以需要这5个表,并且要有关联关系

问题4:权限怎么控制?

用户有角色(管理员、销售等)
角色有权限(查看、编辑、删除)
所以需要 rolespermissionsrole_permissions 3个表

这就是思考!不是写代码!

🎯 输出结果(部分)

-- 租户表:存储租户信息CREATE TABLE tenants (  id VARCHAR(36PRIMARY KEY DEFAULT gen_random_uuid(),  name VARCHAR(255NOT NULL,  code VARCHAR(50NOT NULL UNIQUE,  status VARCHAR(20DEFAULT 'active',  subscription_plan VARCHAR(50DEFAULT 'free',  created_at TIMESTAMP DEFAULT NOW(),  updated_at TIMESTAMP);-- 用户表:存储用户信息CREATE TABLE users (  id VARCHAR(36PRIMARY KEY DEFAULT gen_random_uuid(),  tenant_id VARCHAR(36),  name VARCHAR(128NOT NULL,  email VARCHAR(255),  status VARCHAR(20DEFAULT 'active',  created_at TIMESTAMP DEFAULT NOW());

✅ 执行命令

# 创建数据库连接# 执行建表 SQL

第4步:ORM层实现(3小时)

💡 我的做法

使用 Drizzle ORM 定义 Schema,方便类型安全操作

🤖 AI 提示词 4:Drizzle Schema 定义

我要用 Drizzle ORM 定义数据库 Schema,请帮我:1. 导入必要的类型和函数2. 定义 tenants 表3. 定义 users 表4. 定义 roles 表5. 定义 permissions 表6. 定义 leads 表7. 定义 customers 表8. 定义 opportunities 表9. 定义 contracts 表10. 定义 payments 表要求:- 使用 createInsertSchema 生成验证 Schema- 导出类型定义($inferSelect)- 为索引字段添加注释

🎯 输出结果

import { pgTable, varchar, integer, timestamp, index } from 'drizzle-orm/pg-core';export const tenants = pgTable(  "tenants",  {    id: varchar("id", { length: 36 }).primaryKey(),    name: varchar("name", { length: 255 }).notNull(),    code: varchar("code", { length: 50 }).notNull().unique(),    // ... 其他字段  },  (table=> ({    codeIdx: index("tenants_code_idx").on(table.code),  }));export type Tenant = typeof tenants.$inferSelect;

第5步:Manager 层开发(4小时)

💡 我的做法

为每个表创建 Manager 类,封装 CRUD 操作

🤖 AI 提示词 5:Manager 类模板

请帮我创建一个 Manager 类模板,要求:1. 包含 create、getById、getAll、update、delete 基础方法2. 支持条件查询(filters)3. 支持分页(limit, offset)4. 使用 TypeScript 类型5. 包含错误处理模板示例:class TenantManager {  async createTenant(data: InsertTenant): Promise<Tenant> {    // TODO: 实现  }  async getTenantById(id: string): Promise<Tenant | null> {    // TODO: 实现  }}

🎯 输出结果

export class TenantManager {  async createTenant(data: InsertTenant): Promise<Tenant> {    const [tenant= await db.insert(tenants).values(data).returning();    return tenant;  }  async getTenants(filters?: { status?: string }): Promise<Tenant[]> {    const query = db.select().from(tenants);    if (filters?.status) {      query.where(eq(tenants.status, filters.status));    }    return await query;  }}

✅ 最终成果

实现了 15 个 Manager 类:

tenantManager
userManager
leadManager
customerManager
opportunityManager
contractManager
paymentManager
interactionManager
roleManager
permissionManager
rolePermissionManager
userTenantManager
workflowManager
userSettingsManager
companyInfoManager

第6步:API 路由开发(2小时)

💡 我的做法

使用 Next.js API Routes 提供后端接口

🤖 AI 提示词 6:API 路由模板

请帮我创建一个 Next.js API Route,实现租户的 CRUD 接口:1. GET /api/tenants - 获取租户列表2. POST /api/tenants - 创建租户3. GET /api/tenants/[id] - 获取单个租户4. PATCH /api/tenants/[id] - 更新租户5. DELETE /api/tenants/[id] - 删除租户要求:- 使用 TypeScript- 包含错误处理- 返回 JSON 格式- 添加请求验证

🎯 输出结果

// src/app/api/tenants/route.tsimport { NextRequest, NextResponse } from 'next/server';import { tenantManager } from '@/storage/database';export async function GET(request: NextRequest) {  try {    const tenants = await tenantManager.getTenants();    return NextResponse.json({ success: true, data: tenants });  } catch (error) {    return NextResponse.json({ success: false, error: 'Internal server error' }, { status: 500 });  }}export async function POST(request: NextRequest) {  try {    const body = await request.json();    const tenant = await tenantManager.createTenant(body);    return NextResponse.json({ success: true, data: tenant });  } catch (error) {    return NextResponse.json({ success: false, error: 'Failed to create tenant' }, { status: 500 });  }}

第7步:前端页面开发(8小时)

💡 我的做法

使用 shadcn/ui 组件快速构建页面

使用 shadcn/ui 组件,快速构建精美页面

🤖 AI 提示词 7:登录页面

请帮我创建一个登录页面,要求:1. 使用 shadcn/ui 组件(Card、Input、Button)2. 包含邮箱输入框3. 包含登录按钮4. 添加加载状态5. 添加错误提示6. 使用 Tailwind CSS 样式7. 响应式设计页面结构:- Logo 和标题- 登录表单- 提示信息

🤖 AI 提示词 8:Dashboard 页面

请帮我创建一个 Dashboard 页面,要求:1. 使用 shadcn/ui 组件(Card、Tabs、Table)2. 展示关键指标(租户数、用户数、商机数)3. 包含侧边栏导航4. 包含数据表格5. 添加筛选和搜索功能6. 使用 React 状态管理

🎯 输出结果

// 登录页面export default function LoginPage() {  const [emailsetEmail= useState('');  const [isLoadingsetIsLoading= useState(false);  const [errorsetError= useState('');  const handleLogin = async (e: React.FormEvent=> {    e.preventDefault();    setIsLoading(true);    try {      const response = await fetch('/api/auth/check', {        method: 'POST',        body: JSON.stringify({ email }),      });      const data = await response.json();      if (data.authorized) {        router.push('/dashboard');      } else {        setError(data.message);      }    } finally {      setIsLoading(false);    }  };  return (    <Card>      <CardHeader>        <CardTitle>登录</CardTitle>      </CardHeader>      <CardContent>        <Input value={email} onChange={(e) => setEmail(e.target.value)} />        <Button onClick={handleLogin}>登录</Button>      </CardContent>    </Card>  );}

第8步:权限系统实现(2小时)

💡 我的做法

实现 RBAC(基于角色的访问控制)

🤖 AI 提示词 9:权限检查中间件

请帮我创建一个权限检查中间件,要求:1. 检查用户是否登录2. 检查用户是否有特定权限3. 返回 401 或 403 状态码4. 支持多个权限检查5. 使用 TypeScript 类型示例:export function requirePermission(permission: string) {  return async (request: NextRequest) => {    // TODO: 实现权限检查  };}

第9步:数据可视化(2小时)

💡 我的做法

使用 Recharts 图表库展示数据

🤖 AI 提示词 10:销售漏斗图表

请帮我创建一个销售漏斗图表,要求:1. 使用 Recharts 库2. 展示不同阶段的商机数量3. 使用漏斗样式4. 添加数据标签5. 支持点击事件阶段包括:qualification、proposal、negotiation、closed_won、closed_lost

第10步:部署上线(1小时)

💡 我的做法

使用 Coze CLI 一键部署

一键部署,自动上线,无需手动配置服务器

🤖 AI 提示词 11:部署配置

请帮我创建部署配置文件,要求:1. 定义环境变量2. 配置数据库连接3. 配置构建命令4. 配置启动命令5. 添加健康检查请给出完整的 .coze 文件内容。

🎯 输出结果

[project]requires = ["nodejs-24"][dev]build = ["pnpm", "install"]run = ["pnpm", "run", "dev"][deploy]build = ["pnpm", "run", "build"]run = ["pnpm", "run", "start"]

✅ 执行命令

coze buildcoze start

💥 踩坑实录(这些坑我都踩过!)

坑1:飞书 API 配置失败 ❌

问题:一开始想用飞书多维表存储数据,结果 API 配置了三天,各种权限错误!

飞书 API 各种权限错误,配置了三天都搞不定

错误代码

错误码 91403:无权限访问应用错误码 1254001:租户未授权错误码 1254302:表 ID 错误

教训

1
飞书 API 权限配置太复杂,0基础小白根本搞不定
2
官方文档更新不及时,示例代码跑不通
3
技术支持响应慢,影响开发进度

解决方案❌ 放弃飞书 API✅ 改用 PostgreSQL 数据库(简单、快速、稳定)

AI 提示词(救命稻草)

飞书 API 一直报错 91403、1254001,我该如何排查?1. 检查应用权限配置2. 检查租户授权状态3. 检查表 ID 是否正确4. 给出完整的排查步骤

坑2:Drizzle ORM 类型错误 ❌

问题:Schema 定义完成后,TypeScript 一直报类型错误!

TypeScript 报错,类型不匹配

错误信息

Type 'number' is not assignable to type 'string | SQLWrapper'Property 'module' does not exist on type 'PgTableWithColumns'

教训

1
PostgreSQL 的 VARCHAR 字段在 TypeScript 中是 string 类型,不是 number
2
Drizzle ORM 的类型推断有坑,需要手动指定
3
使用 eq() 函数时,左右类型要一致

解决方案

// ❌ 错误async getTenantById(id: number) { ... }// ✅ 正确async getTenantById(id: string) { ... }

坑3:登录 API 报"系统配置错误" ❌

问题:用户登录时显示"系统配置错误,请联系管理员"!

登录 API 报"系统配置错误",用户无法登录

根本原因:登录 API 依赖飞书环境变量,但项目已改用数据库方案

教训

1
修改架构后,所有相关 API 都要更新
2
环境变量未配置时要给出明确的错误提示
3
开发和生产环境的配置要分开

解决方案重写登录 API,移除飞书依赖,直接查询数据库验证用户


坑4:多租户数据隔离失败 ⚠️

问题:一开始设计时忘记给业务表添加 tenant_id 字段,导致数据混乱!

教训

1
多租户架构的核心是数据隔离,每张业务表都要有 tenant_id
2
所有的查询都要带上 tenant_id 过滤条件
3
前端显示数据时要根据 tenant_id 隔离

解决方案

-- 所有业务表都要添加 tenant_id 字段CREATE TABLE leads (  id VARCHAR(36PRIMARY KEY,  tenant_id VARCHAR(36NOT NULL,  -- 多租户隔离  customer_id VARCHAR(36),  -- ...);

坑5:shadcn/ui 组件样式不生效 ⚠️

问题:使用 shadcn/ui 组件时,样式不生效,页面很丑!

教训

1
shadcn/ui 依赖 Tailwind CSS,必须正确配置
2
需要在 globals.css 中导入组件样式
3
部分组件需要额外配置(如主题)

解决方案

@tailwind base;@tailwind components;@tailwind utilities;

🎉 最终成果展示

📊 系统界面

🏠 登录页:简洁大方,支持邮箱登录
📈 Dashboard:数据可视化,关键指标一目了然
👥 客户管理:完整的客户生命周期管理
💰 销售漏斗:可视化商机跟踪,预测成交金额
📄 合同管理:合同签订、到期提醒
💳 支付管理:支付记录、逾期提醒
🔐 权限系统:5种角色,精细化权限控制

🏗️ 技术架构

┌─────────────────────────────────────┐│           前端层                    ││  Next.js 16 + React 19 + shadcn/ui  │└─────────────────────────────────────┘                 ↓┌─────────────────────────────────────┐│           API 层                    ││    Next.js API Routes              │└─────────────────────────────────────┘                 ↓┌─────────────────────────────────────┐│         业务逻辑层                  ││      15个 Manager 类                │└─────────────────────────────────────┘                 ↓┌─────────────────────────────────────┐│         数据访问层                  ││      Drizzle ORM                   │└─────────────────────────────────────┘                 ↓┌─────────────────────────────────────┐│         数据库层                    ││     PostgreSQL (15张表)            │└─────────────────────────────────────┘

📈 项目统计

代码行数:约 10,000 行
数据表:15 张
API 接口:30+ 个
前端页面:10+ 个
开发时间:3 天
技术栈:Next.js + PostgreSQL + Drizzle

3天时间,从0到1,完整企业级SaaS CRM系统基础搭建


💰 价值评估

💡 为什么说 AI 时代的核心能力是"思维"?

传统程序员的能力模型:

编程语言(Java/Python)→ 框架(Spring/Django)→ 数据库 → 前端 → 运维学习曲线:1-2年适用场景:职业开发

AI 时代的能力模型:

业务梳理 → 工作流设计 → 提示词表达 → 沟通澄清 → 迭代优化学习曲线:3天适用场景:所有需要解决问题的场景

💡 关键认知

AI 时代,工具会过时,思维永不过时!

Next.js 可能被其他框架替代
PostgreSQL 可能被其他数据库替代
但是:
业务逻辑梳理能力永不过时
工作流设计能力永不过时
提示词思维能力永不过时
沟通澄清能力永不过时

这 4 种能力,才是 AI 时代的核心竞争力!


🎯 最后的话

我到底想告诉你什么?

这篇文章看起来是在教你做一个 CRM 系统,但实际上我想告诉你:

AI 时代,核心能力变了!

过去:

核心能力 = 掌握技术工具
学习路径 = 花 1-2 年学技术
竞争优势 = 技术比别人好

现在:

核心能力 = 思考和表达能力
学习路径 = 花 3 天学思维方式
竞争优势 = 思维比别人好

这套思维方式有什么用?

在职场上

产品经理:更好地分析需求、设计系统
项目经理:更好地拆解任务、管控项目
运营人员:更好地设计工作流、提升效率

在创业上

快速验证想法(低成本开发 MVP)
自己做产品(不用外包)
灵活调整方向(快速迭代)

在生活上

更好地解决任何问题
更好地表达自己的想法
更好地学习和成长

我从 0 基础到做出 CRM 系统,到底用了什么?

不是因为我学会了编程,而是因为:

1
我想清楚了业务逻辑 - CRM 系统需要什么功能
2
我设计好了工作流程 - 数据如何流转
3
我用提示词表达给 AI - AI 帮我实现了代码
4
我验证了结果 - 符不符合预期
5
我不断优化迭代 - 越来越好

这套流程,可以用在任何地方!


最后一句:

"在 AI 时代,不是技术取代了你,而是会用 AI 的人取代了不会用 AI 的人。"

但更重要的是:会用 AI,本质上是会思考和会表达!

你的思维,决定了你的未来!

添加微信ERPers00001,获取AI工具、报告。
#智能体#AI#AIAgent#人工智能#AGI#ai#供应链管理#提示词

最新文章

随机文章

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