mirror of
https://github.com/crmeb/CRMEB.git
synced 2026-10-28 21:40:50 +00:00
后端
- NoticeLogDao::getStatistics() 原实现复用同一个查询构造器,where 条件累积,
导致 failed 恒为 0、success 含全部状态;改为每次基于独立条件 count。
- 抽出 buildWhere() 统一组装条件,列表与统计共用;统计不叠加状态条件。
- status=0(待发送)是合法筛选值,原 empty() 判断会丢弃,改为 isset + 非空串判断。
- page/limit 做整数与上限(100)校验,避免非法分页参数。
- 列表接口返回 { list, count },供前端分页使用。
前端
- 补充分页组件,搜索/重置/清理后回到第一页并同时刷新列表与统计。
- 兼容列表接口旧格式(数组)与新格式({ list, count })。
crmeb/app/dao目录是项目数据访问对象(DAO)层的代码目录。
DAO层主要职责和作用如下:
-
实现数据持久层访问,对数据库进行CURD操作。
-
依赖数据库连接,实现对表的基本增删改查功能。
-
封装数据库操作原语(查询,插入,更新等),简化开发难度。
-
与数据库解藕,提供统一接口,便于扩展和维护。
具体来说:
- dao目录下每个文件对应一个数据表或业务模块
- 文件内封装了对表基本操作的方法,如查找,插入,更新等
- 方法的参数和返回值类型为模型对象(Model),实现数据和业务的解耦
- 提供丰富的查询条件以方便调用
- 底层利用ThinkPHP的ActiveRecord实现数据操作
使用DAO层的好处:
- 提供对象化的数据操作接口
- 屏蔽数据库差异,提高移植性
- 方便测试和扩展
- 实现业务和数据层的分离
所以该目录负责项目的底层数据操作,其他业务需要调用它来操作数据库。