【程序文件】docs: 添加crmeb项目目录及核心模块结构说明文档

This commit is contained in:
sugar1569 2026-03-12 17:55:20 +08:00
parent cdcb871dad
commit f51f4e68c1
28 changed files with 1074 additions and 963 deletions

70
crmeb/FILE_GUIDE.md Normal file
View File

@ -0,0 +1,70 @@
# crmeb 目录文件说明
## 目录结构概览
```
crmeb/
├── app/ # 应用程序核心代码(控制器、模型、服务等)
├── backup/ # 数据备份文件
├── config/ # 配置文件(数据库、缓存、接口等)
├── crmeb/ # 项目内部公共模块或扩展库
├── public/ # Web 可访问入口(静态资源、index.php)
├── route/ # 路由定义
├── runtime/ # 运行时缓存、日志、Session 等(需忽略版本控制)
│
├── .constant # 常量定义文件(需忽略版本控制)
├── .dockerignore # Docker 构建忽略规则
├── .env # 环境变量配置(敏感信息)(需忽略版本控制)
├── .env.example # 环境变量示例文件
├── .htaccess # Apache 重写规则
├── .phpstorm.meta.php # PhpStorm 元数据
├── .travis.yml # Travis CI 配置
├── .version # 版本信息
├── Dockerfile # Docker 镜像构建文件
├── LICENSE.txt # 开源许可协议
├── README.md # 项目说明
├── build.example.php # 构建示例脚本
├── composer.json # Composer 依赖配置
├── composer.lock # Composer 锁定版本
├── filetree.txt # 文件树结构快照
├── index.html # 默认首页(防访问目录)
├── my.cnf # MySQL 自定义配置(需忽略版本控制)
├── nginx.conf # Nginx 配置(需忽略版本控制)
├── php-fpm.conf # PHP-FPM 配置(需忽略版本控制)
├── php-ini-overrides.ini# PHP 自定义 ini 覆盖(需忽略版本控制)
├── redis.conf # Redis 配置(需忽略版本控制)
├── start.sh # 项目启动脚本(需忽略版本控制)
├── supervisord.conf # Supervisor 进程管理配置(需忽略版本控制)
├── think # ThinkPHP 框架入口文件
├── vhost.conf # 虚拟主机配置(需忽略版本控制)
└── workerman.bat # Windows 下 Workerman 启动脚本
```
## 主要目录说明
- **app/**
存放业务逻辑的核心代码,包括控制器(Controller)、模型(Model)、服务层(Service)等,遵循 MVC 或类似分层架构。
- **backup/**
用于存放数据库或重要数据的备份文件,建议定期清理旧备份。
- **config/**
各种环境与应用配置文件,如数据库、缓存、队列、接口认证等。
- **crmeb/**
项目内部的公共模块或第三方 SDK 集成,可能包含一些工具类或扩展功能。
- **public/**
Web 服务器根目录,放置可直接通过浏览器访问的资源(如图片、JS、CSS)以及入口文件 `index.php`。
- **route/**
路由定义文件,用于映射 URL 请求到具体的控制器方法。
- **runtime/**
存放运行时生成的缓存、日志、Session 等临时数据;此目录应在 `.gitignore` 中忽略。
## 主要文件说明
- **.env / .env.example**
环境变量配置与示例,`.env` 含敏感信息,不要提交到代码库。
- **composer.json / composer.lock**
PHP 项目依赖管理配置与锁定文件。
- **Dockerfile / docker-compose 相关**
用于容器化部署的配置。
- **my.cnf / redis.conf / nginx.conf**
各类服务的自定义配置。
- **start.sh**
项目本地或服务器启动入口脚本。
- **think**
ThinkPHP 框架的统一入口文件,负责初始化框架并分发请求。

View File

@ -1,70 +1,41 @@
### 系统目录介绍优化方案
# app 目录结构说明
#### 1. 引言
在优化系统目录介绍时,我们的目标是使目录结构更加清晰、易于理解,并突出每个目录的核心功能和作用。
## 目录结构
#### 2. 目录结构优化概述
我们将通过以下几个步骤来优化目录介绍:
- **明确目录层级**:清晰展示主目录与子目录的关系。
- **突出核心功能**:简要概括每个目录的主要作用和包含的文件类型。
- **增加示例或用途说明**:对于关键目录,提供简短的示例或用途描述,帮助开发者快速理解。
```
.
├── adminapi/ # 后台管理端API接口
├── api/ # 移动端API接口
├── dao/ # DAO层(数据访问对象)
├── http/ # HTTP中间件
├── jobs/ # 队列任务
├── kefuapi/ # 客服端API接口
├── lang/ # 语言包
├── listener/ # 事件监听器目录
├── model/ # Model层
├── services/ # Services层
├── subscribes/ # 事件订阅
├── AppService.php # 应用服务类
├── ExceptionHandle.php # 异常处理器
├── Request.php # 封装Request类
├── build.php # 构建配置
├── common.php # 公共方法
├── event.php # 事件配置
├── middleware.php # 中间件配置
├── provider.php # 容器Provider定义文件
└── service.php # 服务配置
```
#### 3. 优化后的目录介绍
## 目录说明
##### app/
- **核心目录**:存放应用程序的核心代码和资源。
- **包含内容**:业务逻辑、控制器、模型、视图等。
###### app/adminapi/
- **功能**:管理端应用控制器。
- **用途**:处理管理端用户请求、业务逻辑和数据交互。
- **示例**:管理员登录、权限管理等。
###### app/api/
- **功能**:用户端应用控制器。
- **用途**:处理用户端请求、业务逻辑和数据交互。
- **示例**:用户注册、商品浏览等。
###### app/dao/
- **功能**:数据访问对象(DAO)。
- **用途**:封装数据访问操作,提供统一接口。
- **文件类型**:类文件。
###### app/http/
- **功能**:HTTP请求和响应跨域中间键。
- **用途**:处理跨域请求,确保前后端通信顺畅。
###### app/jobs/
- **功能**:消息队列任务。
- **用途**:处理异步任务,如邮件发送、数据同步等。
###### app/kefuapi/
- **功能**:客服端应用控制器。
- **用途**:处理客服端请求、业务逻辑和数据交互。
- **示例**:客服聊天、工单处理等。
###### app/lang/
- **功能**:语言包。
- **用途**:支持多语言功能,提供不同语言的文本资源。
###### app/listener/
- **功能**:事件监听器。
- **用途**:监听和处理系统事件,如用户登录、订单生成等。
###### app/model/
- **功能**:模型类。
- **用途**:封装数据访问操作,提供统一接口。
- **与dao区别**:模型类更侧重于业务逻辑层面的数据操作。
###### app/outapi/
- **功能**:对外接口应用控制器。
- **用途**:处理外部系统请求、业务逻辑和数据交互。
- **示例**:第三方支付回调、API对接等。
###### app/service/
- **功能**:服务类。
- **用途**:封装业务逻辑和数据交互操作,提供统一服务接口。
- **示例**:用户服务、订单服务等。
#### 4. 结语
通过上述优化,我们使`app`目录及其子目录的介绍更加清晰、条理分明。每个目录的核心功能和用途都得到了突出展示,有助于开发者快速理解和定位代码。同时,增加的示例和用途说明也进一步降低了理解门槛,提升了开发效率。
- **adminapi/** - 后台管理端API接口模块
- **api/** - 移动端API接口模块
- **dao/** - 数据访问对象层,负责数据库操作
- **http/** - HTTP中间件相关文件
- **jobs/** - 异步队列任务处理
- **kefuapi/** - 客服系统API接口
- **lang/** - 多语言包文件
- **listener/** - 事件监听器,处理系统事件
- **model/** - 数据模型层,定义数据结构和业务逻辑
- **services/** - 业务服务层,封装复杂业务逻辑
- **subscribes/** - 事件订阅器

View File

@ -1,17 +1,35 @@
crmeb/app/adminapi这个目录主要是后台管理系统的API接口文件。
# adminapi 目录结构说明
具体来说:
## 目录结构
- adminapi目录下的文件都是后台管理系统的控制器(Controller)文件,这些控制器被用来处理后台系统的各种请求。
```
.
├── config/ # 配置目录
├── controller/ # 控制器目录
├── lang/ # 语言包目录
├── middleware/ # 中间件目录
├── route/ # 路由配置目录
├── validate/ # 验证器目录
├── AdminApiExceptionHandle.php # 异常处理器
├── common.php # 公共方法
├── event.php # 事件配置
└── provider.php # 服务提供者
```
- 每一个控制器文件对应后台管理系统某个功能模块,比如AuthController处理认证模块请求,StoreProduct处理商品模块请求等。
## 目录说明
- 控制器内有各种方法,这些方法就相当于API接口,可以处理GET、POST请求,返回JSON数据。
- **config/** - 后台管理端专用配置
- **controller/** - 后台管理控制器,处理管理端业务逻辑
- **lang/** - 后台管理端多语言文件
- **middleware/** - 后台管理中间件,如权限验证、日志记录等
- **route/** - 后台管理路由配置
- **validate/** - 后台管理数据验证器
- 浏览器或APP在调用这些API接口时,会发送请求到相应的控制器方法,例如登录接口请求到Login文件的login方法。
## 功能说明
- 控制器处理完请求后,通过返回Response对象返回处理结果给浏览器或APP。
所以简单来说,adminapi目录负责后台管理系统的所有API接口,这些接口被APP或前端调用来完成各种管理操作,如查询数据、添加修改删除等。开发者在新增后台功能时,也需要在此目录增加对应的控制器和接口。
它实际上负责后台系统的通信交互层,解耦了后端逻辑和前端展示,采用 RESTful规范设计。
adminapi模块专门用于处理后台管理系统的API接口,包括:
- 用户权限管理
- 商品管理
- 订单处理
- 数据统计
- 系统设置等后台管理功能

View File

@ -1,14 +0,0 @@
.
├── config
├── controller
├── lang
├── middleware
├── route
├── validate
├── AdminApiExceptionHandle.php
├── common.php
├── event.php
├── filetree.txt
└── provider.php
6 directories, 5 files

View File

@ -1,28 +1,35 @@
crmeb/app/api目录是网站前端(非管理后台)的API接口目录。
# api 目录结构说明
它与adminapi目录的区别在于:
## 目录结构
- adminapi目录下的是管理后台系统的API接口
- api目录下的是网站前端系统(手机端/微信小程序/H5等)的API接口
```
.
├── config/ # 配置目录
├── controller/ # 控制器目录
├── lang/ # 语言包目录
├── middleware/ # 中间件目录
├── route/ # 路由配置目录
├── validate/ # 验证器目录
├── ApiExceptionHandle.php # 异常处理器
├── common.php # 公共方法
├── event.php # 事件配置
└── provider.php # 服务提供者
```
具体来说:
## 目录说明
- api目录下也是采用控制器(Controller)方式组织接口代码
- 每个控制器对应一个功能模块,如OrderController负责订单相关接口等
- 接口用于前端页面的ajax请求,获取数据用于渲染
- 接口也采用RESTful风格设计
- **config/** - 移动端API专用配置
- **controller/** - 移动端控制器,处理移动端业务逻辑
- **lang/** - 移动端多语言文件
- **middleware/** - 移动端中间件,如用户认证、请求日志等
- **route/** - 移动端路由配置
- **validate/** - 移动端数据验证器
例如:
## 功能说明
- 用户注册接口在UserController的register方法
- 获取订单列表在OrderController的lists方法
- 支付结果通知在PayController的notify方法
和adminapi目录一样,api目录也通过定义清晰的接口,解耦了前后端,让前端更专注于业务展示。
区别在于目标用户不同:
- adminapi为后台管理员使用
- api目录下的接口为前台用户(手机端、小程序端等)提供数据服务
所以二者都起到了前后端分离的关键作用。
api模块专门用于处理移动端应用的API接口,包括:
- 用户注册登录
- 商品浏览购买
- 订单管理
- 支付功能
- 个人中心等移动端功能

View File

@ -1,14 +0,0 @@
.
├── config
├── controller
├── lang
├── middleware
├── route
├── validate
├── ApiExceptionHandle.php
├── common.php
├── event.php
├── filetree.txt
└── provider.php
6 directories, 5 files

View File

@ -1,28 +1,143 @@
crmeb/app/dao目录是项目数据访问对象(DAO)层的代码目录。
# dao 目录结构说明
DAO层主要职责和作用如下:
## 目录结构
1. 实现数据持久层访问,对数据库进行CURD操作。
```
.
├── activity/ # 营销活动相关DAO
│ ├── advance/ # 预售活动
│ ├── bargain/ # 砍价活动
│ ├── combination/ # 拼团活动
│ ├── coupon/ # 优惠券
│ ├── integral/ # 积分活动
│ ├── live/ # 直播活动
│ ├── lottery/ # 抽奖活动
│ └── seckill/ # 秒杀活动
├── agent/ # 分销代理相关DAO
│ ├── AgentLevelDao.php # 代理等级
│ ├── AgentLevelTaskDao.php # 代理等级任务
│ ├── AgentLevelTaskRecordDao.php # 代理等级任务记录
│ └── DivisionAgentApplyDao.php # 分销代理申请
├── article/ # 文章相关DAO
│ ├── ArticleCategoryDao.php # 文章分类
│ ├── ArticleContentDao.php # 文章内容
│ └── ArticleDao.php # 文章主表
├── diy/ # 自定义页面相关DAO
│ ├── DiyDao.php # DIY页面
│ ├── PageCategoryDao.php # 页面分类
│ └── PageLinkDao.php # 页面链接
├── order/ # 订单相关DAO
│ ├── DeliveryServiceDao.php # 配送服务
│ ├── OtherOrderDao.php # 其他订单
│ ├── OtherOrderStatusDao.php # 其他订单状态
│ ├── StoreCartDao.php # 购物车
│ ├── StoreOrderCartInfoDao.php # 订单商品信息
│ ├── StoreOrderDao.php # 订单主表
│ ├── StoreOrderEconomizeDao.php # 订单节省金额
│ ├── StoreOrderInvoiceDao.php # 订单发票
│ ├── StoreOrderRefundDao.php # 订单退款
│ ├── StoreOrderStatusDao.php # 订单状态
│ ├── StoreOrderStoreOrderCartInfoDao.php # 订单商品关联
│ └── StoreOrderStoreOrderStatusDao.php # 订单状态关联
├── other/ # 其他功能DAO
│ ├── AgreementDao.php # 协议
│ ├── AuxiliaryDao.php # 辅助数据
│ ├── CacheDao.php # 缓存
│ ├── CategoryDao.php # 分类
│ ├── QrcodeDao.php # 二维码
│ └── TemplateMessageDao.php # 模板消息
├── product/ # 商品相关DAO
│ ├── product/ # 商品主表
│ └── sku/ # SKU管理
├── service/ # 客服相关DAO
│ ├── StoreServiceAuxiliaryDao.php # 客服辅助
│ ├── StoreServiceDao.php # 客服主表
│ ├── StoreServiceFeedbackDao.php # 客服反馈
│ ├── StoreServiceLogDao.php # 客服日志
│ ├── StoreServiceRecordDao.php # 客服记录
│ └── StoreServiceSpeechcraftDao.php # 客服话术
├── shipping/ # 物流配送相关DAO
│ ├── ExpressDao.php # 快递公司
│ ├── ShippingTemplatesDao.php # 运费模板
│ ├── ShippingTemplatesFreeCityDao.php # 运费模板免费城市
│ ├── ShippingTemplatesFreeDao.php # 运费模板免费设置
│ ├── ShippingTemplatesNoDeliveryCityDao.php # 运费模板不配送城市
│ ├── ShippingTemplatesNoDeliveryDao.php # 运费模板不配送设置
│ ├── ShippingTemplatesRegionCityDao.php # 运费模板区域城市
│ ├── ShippingTemplatesRegionDao.php # 运费模板区域
│ └── SystemCityDao.php # 系统城市
├── sms/ # 短信相关DAO
│ ├── SmsAdminDao.php # 短信管理
│ └── SmsRecordDao.php # 短信记录
├── system/ # 系统相关DAO
│ ├── admin/ # 管理员
│ ├── attachment/ # 附件
│ ├── config/ # 配置
│ ├── log/ # 日志
│ ├── statistics/ # 统计
│ ├── store/ # 店铺
│ ├── AppVersionDao.php # 应用版本
│ ├── MessageSystemDao.php # 系统消息
│ ├── SystemMenusDao.php # 系统菜单
│ ├── SystemNotificationDao.php # 系统通知
│ └── SystemUserLevelDao.php # 系统用户等级
├── user/ # 用户相关DAO
│ ├── MemberCardBatchDao.php # 会员卡批次
│ ├── MemberCardDao.php # 会员卡
│ ├── MemberRightDao.php # 会员权益
│ ├── MemberShipDao.php # 会员关系
│ ├── UserAddressDao.php # 用户地址
│ ├── UserAuthDao.php # 用户认证
│ ├── UserBillDao.php # 用户账单
│ ├── UserBillStoreOrderDao.php # 用户账单订单关联
│ ├── UserBrokerageDao.php # 用户佣金
│ ├── UserBrokerageFrozenDao.php # 用户冻结佣金
│ ├── UserCancelDao.php # 用户注销
│ ├── UserDao.php # 用户主表
│ ├── UserExtractDao.php # 用户提现
│ ├── UserFriendsDao.php # 用户好友
│ ├── UserGroupDao.php # 用户分组
│ ├── UserInvoiceDao.php # 用户发票
│ ├── UserLabelCateDao.php # 用户标签分类
│ ├── UserLabelDao.php # 用户标签
│ ├── UserLabelRelationDao.php # 用户标签关系
│ ├── UserLevelDao.php # 用户等级
│ ├── UserMoneyDao.php # 用户余额
│ ├── UserRechargeDao.php # 用户充值
│ ├── UserSearchDao.php # 用户搜索
│ ├── UserSignDao.php # 用户签到
│ ├── UserSpreadDao.php # 用户推广
│ ├── UserStoreOrderDao.php # 用户订单关联
│ ├── UserTaskFinishDao.php # 用户任务完成
│ ├── UserUserBillDao.php # 用户账单关联
│ ├── UserUserBrokerageDao.php # 用户佣金关联
│ ├── UserVisitDao.php # 用户访问
│ └── UserWechatUserDao.php # 用户微信关联
├── wechat/ # 微信相关DAO
│ ├── WechatKeyDao.php # 微信密钥
│ ├── WechatMediaDao.php # 微信媒体
│ ├── WechatMenuDao.php # 微信菜单
│ ├── WechatMessageDao.php # 微信消息
│ ├── WechatNewsCategoryDao.php # 微信图文分类
│ ├── WechatQrcodeCateDao.php # 微信二维码分类
│ ├── WechatQrcodeDao.php # 微信二维码
│ ├── WechatQrcodeRecordDao.php # 微信二维码记录
│ ├── WechatReplyDao.php # 微信回复
│ ├── WechatReplyKeyDao.php # 微信回复关键词
│ └── WechatUserDao.php # 微信用户
├── BaseDao.php # DAO基类
└── readme.md # 目录说明文件
```
2. 依赖数据库连接,实现对表的基本增删改查功能。
## 功能说明
3. 封装数据库操作原语(查询,插入,更新等),简化开发难度。
dao(数据访问对象)层负责数据库操作,封装了所有业务模块的数据访问逻辑:
4. 与数据库解藕,提供统一接口,便于扩展和维护。
- **活动模块** - 管理各种营销活动的数据访问
- **代理模块** - 处理分销代理相关的数据操作
- **订单模块** - 订单数据的增删改查
- **用户模块** - 用户信息管理和操作
- **商品模块** - 商品数据管理
- **系统模块** - 系统配置和数据管理
具体来说:
- dao目录下每个文件对应一个数据表或业务模块
- 文件内封装了对表基本操作的方法,如查找,插入,更新等
- 方法的参数和返回值类型为模型对象(Model),实现数据和业务的解耦
- 提供丰富的查询条件以方便调用
- 底层利用ThinkPHP的ActiveRecord实现数据操作
使用DAO层的好处:
- 提供对象化的数据操作接口
- 屏蔽数据库差异,提高移植性
- 方便测试和扩展
- 实现业务和数据层的分离
所以该目录负责项目的底层数据操作,其他业务需要调用它来操作数据库。
DAO层提供统一的数据访问接口,确保数据操作的一致性和安全性。

View File

@ -1,126 +0,0 @@
.
├── activity
│   ├── advance
│   ├── bargain
│   ├── combination
│   ├── coupon
│   ├── integral
│   ├── live
│   ├── lottery
│   └── seckill
├── agent
│   ├── AgentLevelDao.php
│   ├── AgentLevelTaskDao.php
│   ├── AgentLevelTaskRecordDao.php
│   └── DivisionAgentApplyDao.php
├── article
│   ├── ArticleCategoryDao.php
│   ├── ArticleContentDao.php
│   └── ArticleDao.php
├── diy
│   ├── DiyDao.php
│   ├── PageCategoryDao.php
│   └── PageLinkDao.php
├── order
│   ├── DeliveryServiceDao.php
│   ├── OtherOrderDao.php
│   ├── OtherOrderStatusDao.php
│   ├── StoreCartDao.php
│   ├── StoreOrderCartInfoDao.php
│   ├── StoreOrderDao.php
│   ├── StoreOrderEconomizeDao.php
│   ├── StoreOrderInvoiceDao.php
│   ├── StoreOrderRefundDao.php
│   ├── StoreOrderStatusDao.php
│   ├── StoreOrderStoreOrderCartInfoDao.php
│   └── StoreOrderStoreOrderStatusDao.php
├── other
│   ├── AgreementDao.php
│   ├── AuxiliaryDao.php
│   ├── CacheDao.php
│   ├── CategoryDao.php
│   ├── QrcodeDao.php
│   └── TemplateMessageDao.php
├── product
│   ├── product
│   └── sku
├── service
│   ├── StoreServiceAuxiliaryDao.php
│   ├── StoreServiceDao.php
│   ├── StoreServiceFeedbackDao.php
│   ├── StoreServiceLogDao.php
│   ├── StoreServiceRecordDao.php
│   └── StoreServiceSpeechcraftDao.php
├── shipping
│   ├── ExpressDao.php
│   ├── ShippingTemplatesDao.php
│   ├── ShippingTemplatesFreeCityDao.php
│   ├── ShippingTemplatesFreeDao.php
│   ├── ShippingTemplatesNoDeliveryCityDao.php
│   ├── ShippingTemplatesNoDeliveryDao.php
│   ├── ShippingTemplatesRegionCityDao.php
│   ├── ShippingTemplatesRegionDao.php
│   └── SystemCityDao.php
├── sms
│   ├── SmsAdminDao.php
│   └── SmsRecordDao.php
├── system
│   ├── admin
│   ├── attachment
│   ├── config
│   ├── log
│   ├── statistics
│   ├── store
│   ├── AppVersionDao.php
│   ├── MessageSystemDao.php
│   ├── SystemMenusDao.php
│   ├── SystemNotificationDao.php
│   └── SystemUserLevelDao.php
├── user
│   ├── MemberCardBatchDao.php
│   ├── MemberCardDao.php
│   ├── MemberRightDao.php
│   ├── MemberShipDao.php
│   ├── UserAddressDao.php
│   ├── UserAuthDao.php
│   ├── UserBillDao.php
│   ├── UserBillStoreOrderDao.php
│   ├── UserBrokerageDao.php
│   ├── UserBrokerageFrozenDao.php
│   ├── UserCancelDao.php
│   ├── UserDao.php
│   ├── UserExtractDao.php
│   ├── UserFriendsDao.php
│   ├── UserGroupDao.php
│   ├── UserInvoiceDao.php
│   ├── UserLabelCateDao.php
│   ├── UserLabelDao.php
│   ├── UserLabelRelationDao.php
│   ├── UserLevelDao.php
│   ├── UserMoneyDao.php
│   ├── UserRechargeDao.php
│   ├── UserSearchDao.php
│   ├── UserSignDao.php
│   ├── UserSpreadDao.php
│   ├── UserStoreOrderDao.php
│   ├── UserTaskFinishDao.php
│   ├── UserUserBillDao.php
│   ├── UserUserBrokerageDao.php
│   ├── UserVisitDao.php
│   └── UserWechatUserDao.php
├── wechat
│   ├── WechatKeyDao.php
│   ├── WechatMediaDao.php
│   ├── WechatMenuDao.php
│   ├── WechatMessageDao.php
│   ├── WechatNewsCategoryDao.php
│   ├── WechatQrcodeCateDao.php
│   ├── WechatQrcodeDao.php
│   ├── WechatQrcodeRecordDao.php
│   ├── WechatReplyDao.php
│   ├── WechatReplyKeyDao.php
│   └── WechatUserDao.php
├── BaseDao.php
└── filetree.txt
29 directories, 95 files

View File

@ -1,24 +0,0 @@
.
├── adminapi //后台管理端API接口
├── api //移动端API接口
├── dao //dao层
├── http //中间件
├── jobs //队列
├── kefuapi //客服端API接口
├── lang //语言包
├── listener //事件目录
├── model //model层
├── services //services层
├── subscribes //订阅事件
├── AppService.php //
├── ExceptionHandle.php //异常处理
├── Request.php //封装request类
├── build.php //
├── common.php //公共方法
├── event.php //事件配置
├── middleware.php //中间件
├── provider.php //容器Provider定义文件
├── service.php
└── filetree.txt //目录说明
11 directories, 12 files

View File

@ -0,0 +1,24 @@
# http 目录结构说明
## 目录结构
```
:.
├── middleware/ # 全局中间件目录
│ ├── AllowOriginMiddleware.php # 跨域请求中间件
│ └── BaseMiddleware.php # 中间件基类
└── README.md # 目录说明文件
```
## 目录说明
- **middleware/** - 全局HTTP中间件目录,包含跨域请求处理和中间件基类
## 功能说明
http目录包含应用全局的HTTP中间件:
- **跨域中间件** - 处理跨域请求,允许指定域名访问API
- **中间件基类** - 定义中间件的基础抽象类
这些中间件对所有应用模块生效,提供统一的请求处理和响应过滤功能。

View File

@ -1,29 +1,80 @@
crmeb/app/jobs目录是CRMEB项目队列任务类的代码目录。
# jobs 目录结构说明
队列任务在项目开发中有以下几个重要作用:
## 目录结构
1. 异步处理。可以将一些耗时较长的任务放入队列以异步处理,不阻塞主线程。
```
:.
├── notice/ # 通知相关任务目录
│ ├── EnterpriseWechatJob.php # 企业微信通知任务
│ ├── PrintJob.php # 小票打印任务
│ ├── SmsJob.php # 短信通知任务
│ └── SyncMessageJob.php # 同步消息任务
├── AgentJob.php # 代理相关任务
├── AutoCommentJob.php # 自动评论任务
├── CheckQueueJob.php # 队列检查任务
├── LiveJob.php # 直播相关任务
├── MiniOrderJob.php # 小程序订单任务
├── OrderCreateAfterJob.php # 订单创建后任务
├── OrderExpressJob.php # 订单物流任务
├── OrderInvoiceJob.php # 订单发票任务
├── OrderJob.php # 订单处理主任务
├── OtherOrderJob.php # 其他订单任务
├── OutPushJob.php # 外部推送任务
├── PinkJob.php # 拼团任务
├── PosterJob.php # 海报生成任务
├── ProductCopyJob.php # 商品复制任务
├── ProductLogJob.php # 商品日志任务
├── ProductStockJob.php # 商品库存任务
├── RefundOrderJob.php # 退款订单任务
├── TakeOrderJob.php # 接单任务
├── TaskJob.php # 定时任务
├── TemplateJob.php # 模板消息任务
├── TranslateJob.php # 翻译任务
├── UnpaidOrderCancelJob.php # 未支付订单取消任务
├── UnpaidOrderSend.php # 未支付订单发送任务
├── UpgradeJob.php # 升级任务
├── UserJob.php # 用户相关任务
└── README.md # 目录说明文件
```
2. 延迟处理。可以指定队列任务在一定时间后异步执行,比如发送短信或邮件。
## 目录说明
3. 分布处理。可以将队列任务分布到不同服务器进行处理,提高服务器使用效率。
- **notice/** - 通知相关任务,处理短信、微信、企业微信、小票打印等通知
- **AgentJob.php** - 代理相关异步任务
- **AutoCommentJob.php** - 自动评论任务
- **CheckQueueJob.php** - 队列检查任务
- **LiveJob.php** - 直播相关任务
- **MiniOrderJob.php** - 小程序订单任务
- **OrderCreateAfterJob.php** - 订单创建后的异步处理任务
- **OrderExpressJob.php** - 订单物流相关任务
- **OrderInvoiceJob.php** - 订单发票相关任务
- **OrderJob.php** - 订单主任务类
- **OtherOrderJob.php** - 其他类型订单任务
- **OutPushJob.php** - 外部系统推送任务
- **PinkJob.php** - 拼团活动相关任务
- **PosterJob.php** - 海报生成任务
- **ProductCopyJob.php** - 商品复制任务
- **ProductLogJob.php** - 商品日志记录任务
- **ProductStockJob.php** - 商品库存同步任务
- **RefundOrderJob.php** - 退款订单处理任务
- **TakeOrderJob.php** - 订单核销任务
- **TaskJob.php** - 定时任务调度
- **TemplateJob.php** - 模板消息发送任务
- **TranslateJob.php** - 商品翻译任务
- **UnpaidOrderCancelJob.php** - 未支付订单自动取消任务
- **UnpaidOrderSend.php** - 未支付订单提醒发送任务
- **UpgradeJob.php** - 系统升级任务
- **UserJob.php** - 用户相关异步任务
此目录下主要包含以下内容:
## 功能说明
- 每个任务类对应一个业务任务,实现Job接口。
jobs目录包含所有异步队列任务,用于处理耗时较长的操作:
- 任务类内定义具体任务业务逻辑,如发送短信/邮件等。
- **通知类任务** - 发送短信、微信模板消息、企业微信通知、小票打印等
- **订单类任务** - 订单创建后的处理、未支付订单取消、物流查询、发票开具、核销等
- **商品类任务** - 商品复制、商品日志记录、库存同步、商品翻译等
- **用户类任务** - 用户相关异步操作
- **营销类任务** - 拼团活动处理、海报生成等
- **系统类任务** - 定时任务、系统升级、队列检查等
- 通过Broker进行任务的发送和异步处理。
- 支持任务延时、失败重试等功能。
使用队列可以使得项目性能更优:
- 阻塞任务剥离出来异步执行。
- 分布式下每个任务独立运行,不阻塞其他进程。
- 通过Broker复用同一服务,且伸缩性好。
所以此目录负责项目中所有异步任务的编写和调度,起到优化系统性能和扩展能力的重要作用。
这些任务通过消息队列异步执行,提高系统响应速度和并发处理能力。

View File

@ -1,26 +0,0 @@
.
├── notice
│   ├── EnterpriseWechatJob.php
│   ├── PrintJob.php
│   └── SmsJob.php
├── AgentJob.php
├── AutoCommentJob.php
├── LiveJob.php
├── OrderCreateAfterJob.php
├── OrderJob.php
├── OtherOrderJob.php
├── PinkJob.php
├── PosterJob.php
├── ProductCopyJob.php
├── ProductLogJob.php
├── RoutineTemplateJob.php
├── TakeOrderJob.php
├── TaskJob.php
├── TemplateJob.php
├── UnpaidOrderCancelJob.php
├── UnpaidOrderSend.php
├── UserJob.php
├── WechatTemplateJob.php
└── filetree.txt
1 directory, 22 files

View File

@ -1,33 +1,46 @@
crmeb/app/kefuapi这个目录是用来放置客服相关接口的。
# kefuapi 目录结构说明
主要作用和特征:
## 目录结构
1. 提供客服系统与商城前后端交互的API接口。
```
:.
├── config/ # 配置目录
├── controller/ # 控制器目录
├── middleware/ # 中间件目录
├── route/ # 路由配置目录
├── validate/ # 验证器目录
├── KefuApiExceptionHandle.php # 异常处理器
├── provider.php # 服务提供者
└── README.md # 目录说明文件
```
2. 接口主要用于聊天记录的增删改查以及发送消息等功能。
## 目录说明
3. 使用ThinkPHP的Restful风格定义接口请求方式和参数。
- **config/** - 客服API专用配置
- **controller/** - 客服API控制器,处理客服业务逻辑
- **middleware/** - 客服API中间件
- **route/** - 客服API路由配置
- **validate/** - 客服API数据验证器
- **KefuApiExceptionHandle.php** - 客服API异常处理器
- **provider.php** - 客服API服务提供者
4. 接口供移动端APP和PC网站调用实现客服聊天功能。
## 功能说明
5. 后台也可以调用相关接口对客服记录进行管理。
kefuapi模块专门用于处理客服系统的API接口:
具体包含:
- 提供客服系统与商城前后端交互的API接口
- 接口主要用于聊天记录的增删改查以及发送消息等功能
- 使用ThinkPHP的Restful风格定义接口请求方式和参数
- 接口供移动端APP和PC网站调用实现客服聊天功能
- 后台也可以调用相关接口对客服记录进行管理
- 控制器定义各API接口方法接受请求。
具体包含:
- 控制器定义各API接口方法接受请求
- 业务处理逻辑以及与数据库的交互
- 数据验证和结果输出
- 业务处理逻辑以及与数据库的交互。
- 数据验证和结果输出。
使用这个目录定义的客服API,可以:
- 商城各端实现在线客服功能。
- 查看历史记录。
- 服务端管理客服信息。
- 第三方也可以实现其它客服系统对接。
所以总之,此目录主要对客服系统开放API接口,便于商城多端整合用户支持体系。
使用这个目录定义的客服API可以:
- 商城各端实现在线客服功能
- 查看历史聊天记录
- 服务端管理客服信息
- 第三方实现其它客服系统对接

View File

@ -1,29 +1,66 @@
crmeb/app/listener目录用来定义项目的事件监听器。
# listener 目录结构说明
在ThinkPHP框架中,事件监听器是一个重要的机制。它可以用于:
## 目录结构
- 项目运行过程中的各个时间点自动调用指定的监听方法。
```
:.
├── admin/ # 管理员相关监听器目录
│ └── AdminLoginListener.php # 管理员登录监听器
├── http/ # HTTP相关监听器目录
│ └── HttpEndListener.php # HTTP请求结束监听器
├── notice/ # 通知相关监听器目录
│ ├── CustomNoticeListener.php # 自定义通知监听器
│ └── NoticeListener.php # 通知监听器主类
├── order/ # 订单相关监听器目录
│ ├── OrderCreateAfterListener.php # 订单创建后监听器
│ ├── OrderDeliveryListener.php # 订单配送监听器
│ ├── OrderPaySuccessListener.php # 订单支付成功监听器
│ ├── OrderRefundCancelAfterListener.php # 订单退款取消后监听器
│ ├── OrderRefundCreateAfterListener.php # 订单退款创建后监听器
│ ├── OrderShippingListener.php # 订单发货监听器
│ └── OrderTakeListener.php # 订单核销监听器
├── out/ # 外部推送监听器目录
│ └── OutPushListener.php # 外部推送监听器
├── pay/ # 支付相关监听器目录
│ └── NotifyListener.php # 支付回调监听器
├── queue/ # 队列相关监听器目录
│ └── QueueStartListener.php # 队列开始监听器
├── user/ # 用户相关监听器目录
│ ├── LoginListener.php # 用户登录监听器
│ ├── RegisterListener.php # 用户注册监听器
│ ├── UserLevelListener.php # 用户等级监听器
│ └── UserVisitListener.php # 用户访问监听器
├── wechat/ # 微信相关监听器目录
│ └── AuthListener.php # 微信授权监听器
├── CustomEventListener.php # 自定义事件监听器
└── README.md # 目录说明文件
```
- 监听特定事物(如请求、响应等)发生后自动执行回调。
## 目录说明
- 监听其它模块触发的事件,实现扩展钩子函数。
- **admin/** - 管理员相关事件监听器
- **http/** - HTTP请求生命周期事件监听器
- **notice/** - 通知发送事件监听器
- **order/** - 订单状态变化事件监听器
- **out/** - 外部推送事件监听器
- **pay/** - 支付回调事件监听器
- **queue/** - 队列执行事件监听器
- **user/** - 用户行为事件监听器
- **wechat/** - 微信相关事件监听器
- **CustomEventListener.php** - 自定义事件监听器
具体来说:
## 功能说明
- 监听器类实现接口定义监听方法。
listener目录包含事件监听器,用于响应系统事件:
- 方法内可以完成业务逻辑,也可以触发下一个监听器。
- **HTTP事件监听** - 监听HTTP请求生命周期事件,如请求结束
- **订单事件监听** - 监听订单创建、支付成功、配送、发货、退款、核销等状态变化
- **用户事件监听** - 监听用户登录、注册、等级变化、访问记录等
- **通知事件监听** - 监听通知发送事件,触发短信、微信模板消息等
- **支付事件监听** - 监听支付回调事件,处理支付结果
- **微信事件监听** - 监听微信授权、OAuth等事件
- **队列事件监听** - 监听队列执行相关事件
- **管理员事件监听** - 监听管理员登录等事件
- **外部推送事件监听** - 监听外部系统推送事件
- 监听器在配置中注册,在特定点自动调用定义的回调方法。
- 常见监听点有请求开始、响应结束等生命周期点。
这种设计可以:
- 实现跨模块调用无需依赖。
- 解耦业务和基础模块。
- 让第三方功能易于插拔扩展。
所以此目录定义的就是项目各种事件监听回调,起到系统级的扩展与定制作用。
监听器采用观察者模式,实现系统解耦和异步处理,提高代码的可维护性和扩展性。

View File

@ -1,21 +0,0 @@
.
├── http
│   └── HttpEnd.php
├── notice
│   └── Notice.php
├── order
│   ├── OrderCreateAfter.php
│   ├── OrderDelivery.php
│   ├── OrderPaySuccess.php
│   ├── OrderRefund.php
│   └── OrderTake.php
├── user
│   ├── Login.php
│   ├── Register.php
│   ├── UserLevel.php
│   └── UserVisit.php
├── wechat
│   └── Auth.php
└── filetree.txt
5 directories, 13 files

View File

@ -1,33 +1,127 @@
crmeb/app/model目录用于定义项目的数据模型类。
# model 目录结构说明
数据模型类的主要作用和特征有:
## 目录结构
1. 每个模型类对应数据库中的一张表。
```
.
├── activity/ # 营销活动相关Model
│ ├── advance/ # 预售活动
│ ├── bargain/ # 砍价活动
│ ├── combination/ # 拼团活动
│ ├── coupon/ # 优惠券
│ ├── integral/ # 积分活动
│ ├── live/ # 直播活动
│ ├── lottery/ # 抽奖活动
│ └── seckill/ # 秒杀活动
├── agent/ # 分销代理相关Model
│ ├── AgentLevel.php # 代理等级
│ ├── AgentLevelTask.php # 代理等级任务
│ ├── AgentLevelTaskRecord.php # 代理等级任务记录
│ └── DivisionAgentApply.php # 分销代理申请
├── article/ # 文章相关Model
│ ├── Article.php # 文章主表
│ ├── ArticleCategory.php # 文章分类
│ └── ArticleContent.php # 文章内容
├── diy/ # 自定义页面相关Model
│ ├── Diy.php # DIY页面
│ ├── PageCategory.php # 页面分类
│ └── PageLink.php # 页面链接
├── order/ # 订单相关Model
│ ├── DeliveryService.php # 配送服务
│ ├── OtherOrder.php # 其他订单
│ ├── OtherOrderStatus.php # 其他订单状态
│ ├── StoreCart.php # 购物车
│ ├── StoreOrder.php # 订单主表
│ ├── StoreOrderCartInfo.php # 订单商品信息
│ ├── StoreOrderEconomize.php # 订单节省金额
│ ├── StoreOrderInvoice.php # 订单发票
│ ├── StoreOrderRefund.php # 订单退款
│ ├── StoreOrderStatus.php # 订单状态
│ └── StorePink.php # 拼团订单
├── other/ # 其他功能Model
│ ├── Agreement.php # 协议
│ ├── Auxiliary.php # 辅助数据
│ ├── Cache.php # 缓存
│ ├── Category.php # 分类
│ ├── Express.php # 快递
│ ├── Qrcode.php # 二维码
│ └── TemplateMessage.php # 模板消息
├── product/ # 商品相关Model
│ ├── product/ # 商品主表
│ └── sku/ # SKU管理
├── service/ # 客服相关Model
│ ├── StoreService.php # 客服主表
│ ├── StoreServiceFeedback.php # 客服反馈
│ ├── StoreServiceLog.php # 客服日志
│ ├── StoreServiceRecord.php # 客服记录
│ └── StoreServiceSpeechcraft.php # 客服话术
├── shipping/ # 物流配送相关Model
│ ├── ShippingTemplates.php # 运费模板
│ ├── ShippingTemplatesFree.php # 运费模板免费设置
│ ├── ShippingTemplatesNoDelivery.php # 运费模板不配送设置
│ ├── ShippingTemplatesRegion.php # 运费模板区域
│ └── SystemCity.php # 系统城市
├── sms/ # 短信相关Model
│ └── SmsRecord.php # 短信记录
├── system/ # 系统相关Model
│ ├── admin/ # 管理员
│ ├── attachment/ # 附件
│ ├── config/ # 配置
│ ├── log/ # 日志
│ ├── statistics/ # 统计
│ ├── store/ # 店铺
│ ├── AppVersion.php # 应用版本
│ ├── MessageSystem.php # 系统消息
│ ├── SystemMenus.php # 系统菜单
│ ├── SystemNotification.php # 系统通知
│ ├── SystemUserLevel.php # 系统用户等级
│ └── SystemUserTask.php # 系统用户任务
├── user/ # 用户相关Model
│ ├── MemberCard.php # 会员卡
│ ├── MemberCardBatch.php # 会员卡批次
│ ├── MemberRight.php # 会员权益
│ ├── MemberShip.php # 会员关系
│ ├── User.php # 用户主表
│ ├── UserAddress.php # 用户地址
│ ├── UserBill.php # 用户账单
│ ├── UserBrokerage.php # 用户佣金
│ ├── UserBrokerageFrozen.php # 用户冻结佣金
│ ├── UserCancel.php # 用户注销
│ ├── UserExtract.php # 用户提现
│ ├── UserFriends.php # 用户好友
│ ├── UserGroup.php # 用户分组
│ ├── UserInvoice.php # 用户发票
│ ├── UserLabel.php # 用户标签
│ ├── UserLabelCate.php # 用户标签分类
│ ├── UserLabelRelation.php # 用户标签关系
│ ├── UserLevel.php # 用户等级
│ ├── UserMoney.php # 用户余额
│ ├── UserRecharge.php # 用户充值
│ ├── UserSearch.php # 用户搜索
│ ├── UserSign.php # 用户签到
│ ├── UserSpread.php # 用户推广
│ ├── UserTaskFinish.php # 用户任务完成
│ └── UserVisit.php # 用户访问
├── wechat/ # 微信相关Model
│ ├── WechatKey.php # 微信密钥
│ ├── WechatMedia.php # 微信媒体
│ ├── WechatMessage.php # 微信消息
│ ├── WechatNewsCategory.php # 微信图文分类
│ ├── WechatQrcode.php # 微信二维码
│ ├── WechatQrcodeCate.php # 微信二维码分类
│ ├── WechatQrcodeRecord.php # 微信二维码记录
│ ├── WechatReply.php # 微信回复
│ └── WechatUser.php # 微信用户
└── readme.md # 目录说明文件
```
2. 类属性定义表结构,与表结构一一对应。
## 功能说明
3. 包含读写数据相关方法,通过ActiveRecord实现。
model层定义数据结构和业务逻辑,每个Model对应数据库中的一个表:
4. 提供数据与数据库层解耦,统一的数据访问接口。
- **数据映射** - 将数据库表映射为PHP对象
- **业务逻辑** - 封装数据操作和业务规则
- **数据验证** - 提供数据验证和过滤功能
- **关联关系** - 定义表之间的关联关系
5. 数据验证机制,保证数据完整性和一致性。
具体包含:
- 定义模型属性,字段名称对应表结构。
- 自动返回属性值和赋值属性值。
- 实现基础的CRUD方法操作数据库。
- 可扩展自定义数据逻辑和验证规则。
使用模型类可以:
- 减少直接操作数据库带来的复杂性。
- 跨项目重用数据层逻辑。
- 提高项目的可扩展性与复用性。
所以该目录定义的数据模型层,统一封装了项目运用的数据表模型和操作方式。
Model层是MVC架构中的核心组件,负责数据的持久化和业务逻辑处理。

View File

@ -1,112 +0,0 @@
.
├── activity
│   ├── advance
│   ├── bargain
│   ├── combination
│   ├── coupon
│   ├── integral
│   ├── live
│   ├── lottery
│   └── seckill
├── agent
│   ├── AgentLevel.php
│   ├── AgentLevelTask.php
│   ├── AgentLevelTaskRecord.php
│   └── DivisionAgentApply.php
├── article
│   ├── Article.php
│   ├── ArticleCategory.php
│   └── ArticleContent.php
├── diy
│   ├── Diy.php
│   ├── PageCategory.php
│   └── PageLink.php
├── order
│   ├── DeliveryService.php
│   ├── OtherOrder.php
│   ├── OtherOrderStatus.php
│   ├── StoreCart.php
│   ├── StoreOrder.php
│   ├── StoreOrderCartInfo.php
│   ├── StoreOrderEconomize.php
│   ├── StoreOrderInvoice.php
│   ├── StoreOrderRefund.php
│   ├── StoreOrderStatus.php
│   └── StorePink.php
├── other
│   ├── Agreement.php
│   ├── Auxiliary.php
│   ├── Cache.php
│   ├── Category.php
│   ├── Express.php
│   ├── Qrcode.php
│   └── TemplateMessage.php
├── product
│   ├── product
│   └── sku
├── service
│   ├── StoreService.php
│   ├── StoreServiceFeedback.php
│   ├── StoreServiceLog.php
│   ├── StoreServiceRecord.php
│   └── StoreServiceSpeechcraft.php
├── shipping
│   ├── ShippingTemplates.php
│   ├── ShippingTemplatesFree.php
│   ├── ShippingTemplatesNoDelivery.php
│   ├── ShippingTemplatesRegion.php
│   └── SystemCity.php
├── sms
│   └── SmsRecord.php
├── system
│   ├── admin
│   ├── attachment
│   ├── config
│   ├── log
│   ├── statistics
│   ├── store
│   ├── AppVersion.php
│   ├── MessageSystem.php
│   ├── SystemMenus.php
│   ├── SystemNotification.php
│   ├── SystemUserLevel.php
│   └── SystemUserTask.php
├── user
│   ├── MemberCard.php
│   ├── MemberCardBatch.php
│   ├── MemberRight.php
│   ├── MemberShip.php
│   ├── User.php
│   ├── UserAddress.php
│   ├── UserBill.php
│   ├── UserBrokerage.php
│   ├── UserBrokerageFrozen.php
│   ├── UserCancel.php
│   ├── UserExtract.php
│   ├── UserFriends.php
│   ├── UserGroup.php
│   ├── UserInvoice.php
│   ├── UserLabel.php
│   ├── UserLabelCate.php
│   ├── UserLabelRelation.php
│   ├── UserLevel.php
│   ├── UserMoney.php
│   ├── UserRecharge.php
│   ├── UserSearch.php
│   ├── UserSign.php
│   ├── UserSpread.php
│   ├── UserTaskFinish.php
│   └── UserVisit.php
├── wechat
│   ├── WechatKey.php
│   ├── WechatMedia.php
│   ├── WechatMessage.php
│   ├── WechatNewsCategory.php
│   ├── WechatQrcode.php
│   ├── WechatQrcodeCate.php
│   ├── WechatQrcodeRecord.php
│   ├── WechatReply.php
│   └── WechatUser.php
└── filetree.txt
29 directories, 80 files

View File

@ -1,29 +1,57 @@
crmeb/app/outapi目录用于定义项目对外开放的接口。
# outapi 目录结构说明
具体来说:
## 目录结构
```
:.
├── config/ # 配置目录
├── controller/ # 控制器目录
├── middleware/ # 中间件目录
├── route/ # 路由配置目录
├── validate/ # 验证器目录
├── OutApiExceptionHandle.php # 异常处理器
├── provider.php # 服务提供者
└── README.md # 目录说明文件
```
## 目录说明
- **config/** - 外部API专用配置
- **controller/** - 外部API控制器
- **middleware/** - 外部API中间件
- **route/** - 外部API路由配置
- **validate/** - 外部API数据验证器
- **OutApiExceptionHandle.php** - 外部API异常处理器
- **provider.php** - 外部API服务提供者
## 控制器说明
- **AuthController.php** - 授权控制器,处理第三方授权
- **Login.php** - 登录控制器,处理外部登录
- **RefundOrder.php** - 退款订单控制器
- **StoreCategory.php** - 商品分类控制器
- **StoreCoupon.php** - 优惠券控制器
- **StoreOrder.php** - 订单控制器
- **StoreProduct.php** - 商品控制器
- **User.php** - 用户控制器
- **UserLevel.php** - 用户等级控制器
## 功能说明
outapi目录用于定义项目对外开放的接口:
- 是项目对合作第三方开放的API接口定义目录
- 这里的接口可以被第三方直接调用来获取数据或完成相关业务
- 这类API接口与内部使用的API有区别:
- 对外开放,不需要登录授权
- 安全限制较严,只提供必要接口
- 与内部使用的API有区别:
- 对外开放,不需要登录授权(部分接口)
- 安全限制较严,只提供必要接口
- 接口规范遵循RESTful原则
- 常见场景:
- 第方小程序/APP直接获取商品数据
- 第方商户后台系统同步订单信息
- 常见场景:
- 第三方小程序/APP直接获取商品数据
- 第三方商户后台系统同步订单信息
- 小程序支付回调通知接口
使用这个目录定义外部接口可以:
使用这个目录定义外部接口可以:
- 实现与其他系统的深度集成
- 让更多场景能够使用CRMEB提供的能力
- 降低对第方的侵入性,仅开放必要接口
所以总结来说,outapi用于项目对外部开放的公开API,扩展第三方接入能力。
- 降低对第三方的侵入性,仅开放必要接口

View File

@ -1,31 +1,185 @@
crmeb/app/services目录用于定义项目的业务服务类。
# services 目录结构说明
服务类的主要特征和作用包括:
## 目录结构
1. 服务类封装具体的业务逻辑和规则。
```
.
├── activity/ # 营销活动服务
│ ├── advance/ # 预售活动服务
│ ├── bargain/ # 砍价活动服务
│ ├── combination/ # 拼团活动服务
│ ├── coupon/ # 优惠券服务
│ ├── integral/ # 积分活动服务
│ ├── live/ # 直播活动服务
│ ├── lottery/ # 抽奖活动服务
│ └── seckill/ # 秒杀活动服务
├── agent/ # 分销代理服务
│ ├── AgentLevelServices.php # 代理等级服务
│ ├── AgentLevelTaskRecordServices.php # 代理等级任务记录服务
│ ├── AgentLevelTaskServices.php # 代理等级任务服务
│ ├── AgentManageServices.php # 代理管理服务
│ ├── DivisionAgentApplyServices.php # 分销代理申请服务
│ └── DivisionServices.php # 分销服务
├── article/ # 文章服务
│ ├── ArticleCategoryServices.php # 文章分类服务
│ ├── ArticleContentServices.php # 文章内容服务
│ └── ArticleServices.php # 文章服务
├── diy/ # 自定义页面服务
│ ├── DiyServices.php # DIY页面服务
│ ├── PageCategoryServices.php # 页面分类服务
│ └── PageLinkServices.php # 页面链接服务
├── kefu/ # 客服服务
│ ├── service/ # 客服相关服务
│ ├── KefuServices.php # 客服主服务
│ ├── LoginServices.php # 客服登录服务
│ ├── ProductServices.php # 客服商品服务
│ └── UserServices.php # 客服用户服务
├── message/ # 消息服务
│ ├── notice/ # 通知服务
│ ├── wechat/ # 微信消息服务
│ ├── MessageSystemServices.php # 系统消息服务
│ ├── NoticeService.php # 通知服务
│ ├── SystemNotificationServices.php # 系统通知服务
│ └── TemplateMessageServices.php # 模板消息服务
├── order/ # 订单服务
│ ├── DeliveryServiceServices.php # 配送服务
│ ├── OtherOrderServices.php # 其他订单服务
│ ├── OtherOrderStatusServices.php # 其他订单状态服务
│ ├── StoreCartServices.php # 购物车服务
│ ├── StoreOrderCartInfoServices.php # 订单商品信息服务
│ ├── StoreOrderComputedServices.php # 订单计算服务
│ ├── StoreOrderCreateServices.php # 订单创建服务
│ ├── StoreOrderDeliveryServices.php # 订单配送服务
│ ├── StoreOrderEconomizeServices.php # 订单节省服务
│ ├── StoreOrderInvoiceServices.php # 订单发票服务
│ ├── StoreOrderRefundServices.php # 订单退款服务
│ ├── StoreOrderServices.php # 订单主服务
│ ├── StoreOrderSplitServices.php # 订单拆分服务
│ ├── StoreOrderStatusServices.php # 订单状态服务
│ ├── StoreOrderStoreOrderCartInfoServices.php # 订单商品关联服务
│ ├── StoreOrderStoreOrderStatusServices.php # 订单状态关联服务
│ ├── StoreOrderSuccessServices.php # 订单成功服务
│ ├── StoreOrderTakeServices.php # 订单接单服务
│ ├── StoreOrderWapServices.php # WAP订单服务
│ └── StoreOrderWriteOffServices.php # 订单核销服务
├── other/ # 其他服务
│ ├── export/ # 导出服务
│ ├── AgreementServices.php # 协议服务
│ ├── CacheServices.php # 缓存服务
│ ├── CategoryServices.php # 分类服务
│ ├── PosterServices.php # 海报服务
│ ├── QrcodeServices.php # 二维码服务
│ └── UploadService.php # 上传服务
├── out/ # 外部服务
│ └── LoginServices.php # 外部登录服务
├── pay/ # 支付服务
│ ├── OrderOfflineServices.php # 线下支付服务
│ ├── OrderPayServices.php # 订单支付服务
│ ├── PayNotifyServices.php # 支付通知服务
│ ├── PayServices.php # 支付主服务
│ ├── RechargeServices.php # 充值服务
│ └── YuePayServices.php # 余额支付服务
├── pc/ # PC端服务
│ ├── CartServices.php # 购物车服务
│ ├── HomeServices.php # 首页服务
│ ├── LoginServices.php # 登录服务
│ ├── OrderServices.php # 订单服务
│ ├── ProductServices.php # 商品服务
│ ├── PublicServices.php # 公共服务
│ └── UserServices.php # 用户服务
├── product/ # 商品服务
│ ├── product/ # 商品主服务
│ └── sku/ # SKU服务
├── serve/ # 服务平台服务
│ └── ServeServices.php # 服务平台主服务
├── shipping/ # 物流配送服务
│ ├── ExpressServices.php # 快递服务
│ ├── ShippingTemplatesFreeCityServices.php # 运费模板免费城市服务
│ ├── ShippingTemplatesFreeServices.php # 运费模板免费设置服务
│ ├── ShippingTemplatesNoDeliveryCityServices.php # 运费模板不配送城市服务
│ ├── ShippingTemplatesNoDeliveryServices.php # 运费模板不配送设置服务
│ ├── ShippingTemplatesRegionCityServices.php # 运费模板区域城市服务
│ ├── ShippingTemplatesRegionServices.php # 运费模板区域服务
│ ├── ShippingTemplatesServices.php # 运费模板主服务
│ └── SystemCityServices.php # 系统城市服务
├── statistic/ # 统计服务
│ ├── CapitalFlowServices.php # 资金流水统计
│ ├── OrderStatisticServices.php # 订单统计
│ ├── ProductStatisticServices.php # 商品统计
│ ├── TradeStatisticServices.php # 交易统计
│ └── UserStatisticServices.php # 用户统计
├── system/ # 系统服务
│ ├── admin/ # 管理员服务
│ ├── attachment/ # 附件服务
│ ├── config/ # 配置服务
│ ├── log/ # 日志服务
│ ├── store/ # 店铺服务
│ ├── AppVersionServices.php # 应用版本服务
│ ├── SystemAuthServices.php # 系统权限服务
│ ├── SystemClearServices.php # 系统清理服务
│ ├── SystemDatabackupServices.php # 系统备份服务
│ ├── SystemMenusServices.php # 系统菜单服务
│ └── SystemUserLevelServices.php # 系统用户等级服务
├── user/ # 用户服务
│ ├── member/ # 会员服务
│ ├── LoginServices.php # 登录服务
│ ├── UserAddressServices.php # 用户地址服务
│ ├── UserAuthServices.php # 用户认证服务
│ ├── UserBillServices.php # 用户账单服务
│ ├── UserBillStoreOrderServices.php # 用户账单订单关联服务
│ ├── UserBrokerageFrozenServices.php # 用户冻结佣金服务
│ ├── UserBrokerageServices.php # 用户佣金服务
│ ├── UserCancelServices.php # 用户注销服务
│ ├── UserExtractServices.php # 用户提现服务
│ ├── UserFriendsServices.php # 用户好友服务
│ ├── UserGroupServices.php # 用户分组服务
│ ├── UserInvoiceServices.php # 用户发票服务
│ ├── UserLabelCateServices.php # 用户标签分类服务
│ ├── UserLabelRelationServices.php # 用户标签关系服务
│ ├── UserLabelServices.php # 用户标签服务
│ ├── UserLevelServices.php # 用户等级服务
│ ├── UserMoneyServices.php # 用户余额服务
│ ├── UserRechargeServices.php # 用户充值服务
│ ├── UserSearchServices.php # 用户搜索服务
│ ├── UserServices.php # 用户主服务
│ ├── UserSignServices.php # 用户签到服务
│ ├── UserSpreadServices.php # 用户推广服务
│ ├── UserStoreOrderServices.php # 用户订单关联服务
│ ├── UserTaskFinishServices.php # 用户任务完成服务
│ ├── UserUserBillServices.php # 用户账单关联服务
│ ├── UserUserBrokerageServices.php # 用户佣金关联服务
│ ├── UserVisitServices.php # 用户访问服务
│ └── UserWechatuserServices.php # 用户微信关联服务
├── wechat/ # 微信服务
│ ├── RoutineServices.php # 小程序服务
│ ├── WechatKeyServices.php # 微信密钥服务
│ ├── WechatMediaServices.php # 微信媒体服务
│ ├── WechatMenuServices.php # 微信菜单服务
│ ├── WechatMessageServices.php # 微信消息服务
│ ├── WechatNewsCategoryServices.php # 微信图文分类服务
│ ├── WechatQrcodeCateServices.php # 微信二维码分类服务
│ ├── WechatQrcodeRecordServices.php # 微信二维码记录服务
│ ├── WechatQrcodeServices.php # 微信二维码服务
│ ├── WechatReplyKeyServices.php # 微信回复关键词服务
│ ├── WechatReplyServices.php # 微信回复服务
│ ├── WechatServices.php # 微信主服务
│ └── WechatUserServices.php # 微信用户服务
├── yihaotong/ # 易号通短信服务
│ ├── SmsAdminServices.php # 短信管理服务
│ ├── SmsRecordServices.php # 短信记录服务
│ └── SmsTemplateApplyServices.php # 短信模板申请服务
├── BaseServices.php # 服务基类
└── readme.md # 目录说明文件
```
2. 完成功能模块的抽象,提供统一的业务接口。
## 功能说明
3. 解耦项目各部分,降低他们之间的耦合度。
services层封装复杂的业务逻辑,提供统一的业务接口:
4. 提供给上下文的整个环境使用。
- **业务逻辑封装** - 将复杂业务逻辑封装为服务方法
- **事务管理** - 提供数据库事务管理
- **数据验证** - 业务数据验证和过滤
- **第三方服务集成** - 集成支付、短信、微信等第三方服务
- **数据统计** - 提供各种数据统计和分析功能
具体来说:
- 每个服务类对应一个独立的业务功能或规则集合。
- 类内部可以调用其它模块完成业务需求。
- 对外提供简单的业务接口,隐藏内部实现细节。
- 服务类存在依赖关系,可以互相调用实现聚合服务。
使用服务层设计可以:
- 松耦合各个模块,提高扩展和重用能力。
- 同一个业务规则在多个场景复用。
- 加强项目的可测试性与维护性。
所以此目录定义了项目核心业务服务模块,对外提供可复用的核心能力。
Services层是业务逻辑的核心,负责协调各个模块完成复杂的业务操作。

View File

@ -1,169 +0,0 @@
.
├── activity
│   ├── advance
│   ├── bargain
│   ├── combination
│   ├── coupon
│   ├── integral
│   ├── live
│   ├── lottery
│   └── seckill
├── agent
│   ├── AgentLevelServices.php
│   ├── AgentLevelTaskRecordServices.php
│   ├── AgentLevelTaskServices.php
│   ├── AgentManageServices.php
│   ├── DivisionAgentApplyServices.php
│   └── DivisionServices.php
├── article
│   ├── ArticleCategoryServices.php
│   ├── ArticleContentServices.php
│   └── ArticleServices.php
├── diy
│   ├── DiyServices.php
│   ├── PageCategoryServices.php
│   └── PageLinkServices.php
├── kefu
│   ├── service
│   ├── KefuServices.php
│   ├── LoginServices.php
│   ├── ProductServices.php
│   └── UserServices.php
├── message
│   ├── notice
│   ├── wechat
│   ├── MessageSystemServices.php
│   ├── NoticeService.php
│   ├── SystemNotificationServices.php
│   └── TemplateMessageServices.php
├── order
│   ├── DeliveryServiceServices.php
│   ├── OtherOrderServices.php
│   ├── OtherOrderStatusServices.php
│   ├── StoreCartServices.php
│   ├── StoreOrderCartInfoServices.php
│   ├── StoreOrderComputedServices.php
│   ├── StoreOrderCreateServices.php
│   ├── StoreOrderDeliveryServices.php
│   ├── StoreOrderEconomizeServices.php
│   ├── StoreOrderInvoiceServices.php
│   ├── StoreOrderRefundServices.php
│   ├── StoreOrderServices.php
│   ├── StoreOrderSplitServices.php
│   ├── StoreOrderStatusServices.php
│   ├── StoreOrderStoreOrderCartInfoServices.php
│   ├── StoreOrderStoreOrderStatusServices.php
│   ├── StoreOrderSuccessServices.php
│   ├── StoreOrderTakeServices.php
│   ├── StoreOrderWapServices.php
│   └── StoreOrderWriteOffServices.php
├── other
│   ├── export
│   ├── AgreementServices.php
│   ├── CacheServices.php
│   ├── CategoryServices.php
│   ├── PosterServices.php
│   ├── QrcodeServices.php
│   └── UploadService.php
├── out
│   └── LoginServices.php
├── pay
│   ├── OrderOfflineServices.php
│   ├── OrderPayServices.php
│   ├── PayNotifyServices.php
│   ├── PayServices.php
│   ├── RechargeServices.php
│   └── YuePayServices.php
├── pc
│   ├── CartServices.php
│   ├── HomeServices.php
│   ├── LoginServices.php
│   ├── OrderServices.php
│   ├── ProductServices.php
│   ├── PublicServices.php
│   └── UserServices.php
├── product
│   ├── product
│   └── sku
├── serve
│   └── ServeServices.php
├── shipping
│   ├── ExpressServices.php
│   ├── ShippingTemplatesFreeCityServices.php
│   ├── ShippingTemplatesFreeServices.php
│   ├── ShippingTemplatesNoDeliveryCityServices.php
│   ├── ShippingTemplatesNoDeliveryServices.php
│   ├── ShippingTemplatesRegionCityServices.php
│   ├── ShippingTemplatesRegionServices.php
│   ├── ShippingTemplatesServices.php
│   └── SystemCityServices.php
├── statistic
│   ├── CapitalFlowServices.php
│   ├── OrderStatisticServices.php
│   ├── ProductStatisticServices.php
│   ├── TradeStatisticServices.php
│   └── UserStatisticServices.php
├── system
│   ├── admin
│   ├── attachment
│   ├── config
│   ├── log
│   ├── store
│   ├── AppVersionServices.php
│   ├── SystemAuthServices.php
│   ├── SystemClearServices.php
│   ├── SystemDatabackupServices.php
│   ├── SystemMenusServices.php
│   └── SystemUserLevelServices.php
├── user
│   ├── member
│   ├── LoginServices.php
│   ├── UserAddressServices.php
│   ├── UserAuthServices.php
│   ├── UserBillServices.php
│   ├── UserBillStoreOrderServices.php
│   ├── UserBrokerageFrozenServices.php
│   ├── UserBrokerageServices.php
│   ├── UserCancelServices.php
│   ├── UserExtractServices.php
│   ├── UserFriendsServices.php
│   ├── UserGroupServices.php
│   ├── UserInvoiceServices.php
│   ├── UserLabelCateServices.php
│   ├── UserLabelRelationServices.php
│   ├── UserLabelServices.php
│   ├── UserLevelServices.php
│   ├── UserMoneyServices.php
│   ├── UserRechargeServices.php
│   ├── UserSearchServices.php
│   ├── UserServices.php
│   ├── UserSignServices.php
│   ├── UserSpreadServices.php
│   ├── UserStoreOrderServices.php
│   ├── UserTaskFinishServices.php
│   ├── UserUserBillServices.php
│   ├── UserUserBrokerageServices.php
│   ├── UserVisitServices.php
│   └── UserWechatuserServices.php
├── wechat
│   ├── RoutineServices.php
│   ├── WechatKeyServices.php
│   ├── WechatMediaServices.php
│   ├── WechatMenuServices.php
│   ├── WechatMessageServices.php
│   ├── WechatNewsCategoryServices.php
│   ├── WechatQrcodeCateServices.php
│   ├── WechatQrcodeRecordServices.php
│   ├── WechatQrcodeServices.php
│   ├── WechatReplyKeyServices.php
│   ├── WechatReplyServices.php
│   ├── WechatServices.php
│   └── WechatUserServices.php
├── yihaotong
│   ├── SmsAdminServices.php
│   ├── SmsRecordServices.php
│   └── SmsTemplateApplyServices.php
├── BaseServices.php
└── filetree.txt
39 directories, 128 files

View File

@ -1 +1,24 @@
crmeb/backup 目录在CRMEB项目中的主要作用是用于保存备份文件和数据库文件的。
# backup 目录结构说明
## 目录说明
backup目录在CRMEB项目中用于保存备份文件和数据库文件。
## 功能说明
- **数据库备份** - 存放数据库定时备份文件
- **文件备份** - 存放系统重要文件的备份
- **恢复功能** - 支持从备份文件恢复数据和配置
## 使用场景
- 定期自动备份数据库
- 系统升级前的手动备份
- 数据迁移时的导出备份
- 灾难恢复时的数据还原
## 注意事项
- 定期清理过期备份文件,释放存储空间
- 备份文件应定期验证完整性
- 敏感数据备份应注意加密保护

View File

@ -1,27 +1,67 @@
crmeb/config目录用来存放项目的配置文件。
# config 目录结构说明
在PHP项目开发中,配置文件扮演着非常重要的角色:
## 目录结构
- 放置各种系统级参数和设置,如数据库连接信息等
- 分离软件代码和运行环境设置,方便部署
- 运行时根据配置加载系统服务和组件
- 参数可在不修改代码的情况下进行变更
```
:.
├── ajcaptcha.php # 滑块验证码配置
├── app.php # 应用基础配置
├── cache.php # 缓存配置
├── captcha.php # 验证码配置
├── console.php # 命令行配置
├── cookie.php # Cookie配置
├── database.php # 数据库配置
├── filesystem.php # 文件系统配置
├── lang.php # 多语言配置
├── log.php # 日志配置
├── pay.php # 支付配置
├── plat.php # 对接平台配置
├── printer.php # 小票打印机配置
├── qrcode.php # 二维码配置
├── queue.php # 队列配置
├── route.php # 路由配置
├── session.php # Session配置
├── sms.php # 短信配置
├── trace.php # 调试配置
├── upload.php # 上传配置
├── view.php # 模板配置
├── workerman.php # Workerman配置
└── README.md # 目录说明文件
```
CRMEB项目中config目录负责:
## 文件说明
- 放置如数据库、本地缓存、第三方开放API等系统配置
- 定义项目组件自动加载机制
- 路由和URL重写规则
- 错误和日志输出级别
- 各环境参数差异配置隔离
- **ajcaptcha.php** - 滑块验证码配置,用于行为验证
- **app.php** - 应用基础配置,包括时区、字符集、应用模式等
- **cache.php** - 缓存驱动配置,支持Redis、Memcached、文件等
- **captcha.php** - 验证码生成和验证配置
- **console.php** - 命令行应用配置
- **cookie.php** - Cookie配置,包括域名、路径、有效期等
- **database.php** - 数据库连接和查询配置,支持MySQL、SQLite等
- **filesystem.php** - 本地存储和云存储配置
- **lang.php** - 多语言配置,默认语言、语言包路径等
- **log.php** - 日志配置,记录方式、级别、路径等
- **pay.php** - 支付接口配置,包括微信支付、支付宝等
- **plat.php** - 对接平台配置,如小程序、公众号等
- **printer.php** - 小票打印机配置,连接方式、打印模板等
- **qrcode.php** - 二维码生成配置
- **queue.php** - 消息队列配置,支持Redis、数据库、Sync驱动
- **route.php** - 路由配置,URL路由规则、域名部署等
- **session.php** - Session配置,驱动、过期时间等
- **sms.php** - 短信服务配置,支持腾讯云、阿里云等
- **trace.php** - 调试配置,页面Trace显示
- **upload.php** - 文件上传配置,大小限制、保存路径等
- **view.php** - 模板引擎配置,模板路径、缓存配置等
- **workerman.php** - Workerman WebSocket服务配置
项目在运行时会加载并解析这些配置:
## 功能说明
- 初始化系统服务如数据库连接
- 注册组件到容器
- 根据配置加载运行环境
- 提供参数和变量给其它模块
config目录包含系统所有的配置文件:
所以该目录定义了项目的系统架构和运行环境,对项目有重要影响。
- **应用配置** - 定义应用的基础运行参数
- **数据存储** - 数据库、缓存、文件存储配置
- **第三方服务** - 支付、短信、验证码配置
- **路由与安全** - 路由规则、跨域、认证配置
- **开发调试** - 日志、调试、Trace配置
它通过配置实现项目的可配置性和扩展性。
修改配置文件后需要清除缓存或重启服务生效。

View File

@ -1,26 +0,0 @@
.
├── app.php //
├── cache.php //缓存配置
├── captcha.php //验证码配置
├── console.php //命令行配置
├── cookie.php //cookie配置
├── database.php //数据库配置
├── filesystem.php //系统文件目录配置
├── lang.php //多语言配置
├── log.php //日志配置
├── pay.php //支付配置
├── plat.php //对接平台配置
├── printer.php //小票打印机配置
├── qrcode.php //二维码配置
├── queue.php //队列配置
├── route.php //路由配置
├── session.php //session配置
├── sms.php //短信发送配置
├── template.php //微信模版消息配置
├── trace.php //调试配置
├── upload.php //上传配置
├── view.php //模版配置
├── workerman.php //workerman配置
└── filetree.txt //目录文件说明
0 directories, 23 files

View File

@ -1,15 +1,86 @@
crmeb目录在CRMEB项目中的作用是一个特殊目录
# crmeb 核心目录结构说明
- crmeb目录实际上是整个项目的核心库目录
- 它包含项目的核心类、traits、异常定义等
- 这些核心文件提供给整个项目 reused
- 例如请求处理类、响应处理类等
- 它实现了项目特定的封装和扩展
- 使项目各部分能够在一套框架体系下开发
## 目录结构
简而言之,crmeb目录:
```
.
├── basic/ # 基础类库
│ ├── BaseController.php # 控制器基类
│ ├── BaseJobs.php # 队列基类
│ ├── BaseManager.php # 驱动管理基类
│ ├── BaseModel.php # Model基类
│ └── BaseStorage.php # 驱动基类
├── command/ # 命令行工具
│ ├── stubs/ # 命令模板
│ ├── Dao.php # 创建Dao类命令
│ ├── Service.php # 创建Service类命令
│ ├── Timer.php # 定时任务命令类
│ └── Workerman.php # Workerman命令类
├── exceptions/ # 异常处理类
│ ├── AdminException.php # 后台管理端异常
│ ├── ApiException.php # 移动端接口异常
│ ├── AuthException.php # 用户授权异常
│ ├── PayException.php # 支付异常
│ ├── SmsException.php # 短信异常
│ ├── TemplateException.php # 微信模板消息异常
│ ├── UploadException.php # 上传异常
│ └── WechatReplyException.php # 微信自动回复异常
├── interfaces/ # 接口定义
│ ├── JobInterface.php # 队列任务接口
│ ├── ListenerInterface.php # 事件接口
│ ├── MiddlewareInterface.php # 中间件接口
│ └── ProviderInterface.php # 容器接口
├── services/ # 服务类
│ ├── app/ # 应用端服务
│ ├── easywechat/ # EasyWechat集成
│ ├── express/ # 物流查询服务
│ ├── pay/ # 支付服务
│ ├── printer/ # 打印机服务
│ ├── copyproduct/ # 商品采集服务
│ ├── serve/ # 服务平台服务
│ ├── sms/ # 短信服务
│ ├── template/ # 模板消息服务
│ ├── upload/ # 上传服务
│ ├── workerman/ # Workerman服务
│ ├── AccessTokenServeService.php # Token获取服务
│ ├── AliPayService.php # 支付宝服务
│ ├── CacheService.php # 缓存服务
│ ├── FileService.php # 文件处理服务
│ ├── FormBuilder.php # 表单生成器
│ ├── GroupDataService.php # 组合数据服务
│ ├── HttpService.php # HTTP请求服务
│ ├── MysqlBackupService.php # 数据库备份服务
│ ├── SpreadsheetExcelService.php # Excel处理服务
│ ├── SystemConfigService.php # 系统配置服务
│ ├── UpgradeService.php # 系统更新服务
│ └── UploadService.php # 文件上传服务
├── traits/ # Trait扩展
│ ├── ErrorTrait.php # 错误处理扩展
│ ├── JwtAuthModelTrait.php # JWT鉴权扩展
│ ├── ModelTrait.php # Model扩展
│ ├── QueueTrait.php # 队列扩展
│ ├── SearchDaoTrait.php # DAO扩展
│ └── ServicesTrait.php # Services扩展
└── utils/ # 工具类
├── Arr.php # 数组操作工具
├── Canvas.php # 图片处理工具
├── Captcha.php # 验证码工具
├── DownloadImage.php # 远程图片下载工具
├── ErrorCode.php # 错误码处理工具
├── Hook.php # 钩子工具
├── Json.php # JSON处理工具
├── JwtAuth.php # JWT鉴权工具
├── QRcode.php # 二维码工具
├── Queue.php # 队列工具
└── Str.php # 字符串处理工具
```
- 包含项目的各种核心基础支持类
- 为整个项目提供基础功能定定义
- 使项目具备一致性和可扩展性
- 是项目最核心和基础的代码库
## 目录说明
- **basic/** - 基础类库,提供各种基类供业务模块继承
- **command/** - 命令行工具,用于生成代码和系统维护
- **exceptions/** - 自定义异常类,提供统一的异常处理
- **interfaces/** - 接口定义,规范各模块的实现
- **services/** - 核心服务类,封装各种第三方服务和业务逻辑
- **traits/** - Trait扩展,提供可复用的代码片段
- **utils/** - 工具类,提供各种实用功能

View File

@ -1,73 +0,0 @@
.
├── basic
│   ├── BaseController.php //控制器基类
│   ├── BaseJobs.php //队列基类
│   ├── BaseManager.php //驱动管理基类
│   ├── BaseModel.php //model基类
│   └── BaseStorage.php //驱动基类
├── command
│   ├── stubs //命令模版
│   ├── Dao.php //创建Dao类命令
│   ├── Service.php //创建Service类命令
│   ├── Timer.php //定时任务命令类
│   └── Workerman.php //workman命令类
├── exceptions
│   ├── AdminException.php //后台管理端异常处理
│   ├── ApiException.php //移动端接口异常处理
│   ├── AuthException.php //用户授权异常处理
│   ├── PayException.php //支付异常处理
│   ├── SmsException.php //短信异常处理
│   ├── TemplateException.php //微信模版消息异常处理
│   ├── UploadException.php //上传异常处理
│   └── WechatReplyException.php //微信自动回复异常处理
├── interfaces
│   ├── JobInterface.php //队列任务
│   ├── ListenerInterface.php //事件
│   ├── MiddlewareInterface.php //中间件
│   └── ProviderInterface.php //容器
├── services
│   ├── app //应用端
│   ├── easywechat //easywechat
│   ├── express //物流查询
│   ├── pay //支付
│   ├── printer //打印机
│   ├── copyproduct //采集商品
│   ├── serve //服务平台
│   ├── sms //短信
│   ├── template //模版消息
│   ├── upload //上传
│   ├── workerman //workerman
│   ├── AccessTokenServeService.php //获取token
│   ├── AliPayService.php
│   ├── CacheService.php //缓存类
│   ├── FileService.php //文件处理类
│   ├── FormBuilder.php //自动生成表单类
│   ├── GroupDataService.php //组合数据类
│   ├── HttpService.php //curl 请求处理类
│   ├── MysqlBackupService.php //数据库备份管理类
│   ├── SpreadsheetExcelService.php //excel处理类
│   ├── SystemConfigService.php //系统配置获取类
│   ├── UpgradeService.php //系统更新类
│   └── UploadService.php //文件上传类
├── traits
│   ├── ErrorTrait.php //错误处理扩展类
│   ├── JwtAuthModelTrait.php //Jwt鉴权扩展类
│   ├── ModelTrait.php //model扩展类
│   ├── QueueTrait.php //队列扩展累
│   ├── SearchDaoTrait.php //dao扩展类
│   └── ServicesTrait.php //Services扩展类
├── utils
│   ├── Arr.php //操作数组帮助类
│   ├── Canvas.php //图片处理类
│   ├── Captcha.php //验证码类
│   ├── DownloadImage.php //远程图片下载类
│   ├── ErrorCode.php //错误码处理类
│   ├── Hook.php //钩子类
│   ├── Json.php //Json处理类
│   ├── JwtAuth.php //Jwt鉴权类
│   ├── QRcode.php //二维码获取类 TODO
│   ├── Queue.php //队列类
│   └── Str.php //字符处理类
└── filetree.txt
17 directories, 70 files

View File

@ -1,24 +0,0 @@
.
├── app 程序主目录
├── backup 数据库/程序升级备份目录
├── config 系统配置
├── crmeb crmeb核心文件目录
├── public 程序入口目录
├── route 程序入口路由配置
├── runtime 缓存目录
├── temp docker临时文件目录
├── vendor 扩展包compose 安装目录
├── LICENSE.txt 开源协议
├── README.md 系统说明
├── baota.sh 宝塔快速配置环境文件
├── build.example.php
├── composer.json
├── composer.lock
├── filetree.txt
├── think tp命令文件入口
├── timer.pid 定时任务生成文件
├── updatesql.sql
├── workerman.bat windows 启动workerman命令文件
└── workerman.pid workerman生成文件
9 directories, 12 files

View File

@ -1,29 +1,51 @@
crmeb/public目录在CRMEB项目中的主要作用是:
# public 目录结构说明
- 作为网站前端或移动端访问的入口目录
## 目录结构
- 存放项目对外访问的静态资源,如css、js、图片等文件
```
:.
├── .htaccess # Apache伪静态配置
├── admin/ # 后台管理静态资源
├── assets/ # 公共静态资源
├── favicon.ico # 网站图标
├── index.html # 静态HTML入口
├── index.php # PHP入口文件
├── install/ # 安装向导目录
├── mobile.html # 移动端入口HTML
├── nginx.htaccess # Nginx伪静态配置
├── pages/ # 页面模板目录
├── product_migration.xlsx # 商品迁移Excel模板
├── robots.txt # 搜索引擎robots文件
├── router.php # 路由入口文件
├── service_pay_result.html # 支付结果页面
├── static/ # 静态文件目录
├── statics/ # 静态资源目录(样式、脚本)
├── upgrade/ # 升级向导目录
├── uploads/ # 上传文件目录
└── README.md # 目录说明文件
```
- 包含index.php入口文件,用于路由到具体控制器
## 目录说明
- 通过.htaccess实现伪静态URL规则的解析
- **admin/** - 后台管理端静态资源(CSS、JS、图片)
- **assets/** - 项目公共静态资源
- **index.php** - 项目主入口文件
- **install/** - 系统安装向导
- **static/statics** - 前端静态资源目录
- **uploads/** - 用户上传文件目录
- **pages/** - 移动端页面模板
具体来说:
## 功能说明
- 用户通过浏览器或APP都访问public目录下的文件
public目录是网站的入口目录:
- 目录下文件不会包含任何项目核心代码
- **入口作用** - 外部访问项目的唯一入口
- **静态资源** - 存放CSS、JS、图片等静态文件
- **安全隔离** - 通过入口文件路由,隐藏项目内部结构
- **伪静态** - 通过.htaccess实现URL重写
- 路由解析后分发到实际的控制器处处理
## 安全说明
- 资源文件可以通过CDN或其他方式托管发布
使用这个目录设计的优点:
- 隐藏实际项目内部文件结构
- 提高安全性,外部无法直接访问代码
- 实现静态资源优化发布效果
所以它扮演着项目对外"外壳"的作用,承担了项目入口和资源存放功能。
- 不应在此目录存放敏感文件
- 上传目录应限制文件类型
- 定期清理临时上传文件

View File

@ -1,34 +1,36 @@
crmeb/route目录在CRMEB项目中的主要作用是用于定义项目的路由规则。
# route 目录结构说明
1. 定义一个 Route::miss 方法处理路由未匹配的情况
## 目录结构
2. 根据请求路径获取应用名称(如 admin、app 等)
```
:.
├── route.php # 主路由配置
└── README.md # 目录说明文件
```
3. 根据应用名称返回不同的视图文件
## 文件说明
- admin前台后台分别返回不同入口
- **route.php** - 项目主路由配置文件
- app/kefu定义了对应的视图
## 功能说明
- home覆盖移动端和PC入口
route目录用于定义项目的路由规则:
- 其它情况判断是否移动端返回不同视图
- **路由匹配** - 定义URL与控制器的映射关系
- **路由未匹配** - 处理404情况,返回默认页面
- **应用分发** - 根据域名或路径判断请求的应用(admin、app、kefu等)
- **视图分发** - 根据请求信息智能匹配视图资源文件
- **多端适配** - 实现PC端和移动端自动切换
4. 完整定义了项目所有可能的路由入口
## 路由规则说明
5. 根据请求信息智能匹配视图资源文件
- 解析请求路径获取应用名称
- 根据应用名称返回不同的视图或API
- 支持域名绑定和路由分组
- 统一处理所有路由匹配情况
主要作用:
## 注意事项
- 统一处理所有路由匹配
- 隐藏实际控制器入口
- 根据应用名分发页面
- 实现PC端和移动端自动切换
这种设计可以:
- 完整覆盖所有路由情况
- 隐藏实际路由层次结构
- 实现智能的页面分发
是动态路由设计的一个很好范例。
- 修改路由后清除缓存
- 路由规则有优先级,从上到下匹配
- 避免路由冲突