mirror of
https://github.com/crmeb/CRMEB.git
synced 2026-10-28 13:31:04 +00:00
后端
- NoticeLogDao::getStatistics() 原实现复用同一个查询构造器,where 条件累积,
导致 failed 恒为 0、success 含全部状态;改为每次基于独立条件 count。
- 抽出 buildWhere() 统一组装条件,列表与统计共用;统计不叠加状态条件。
- status=0(待发送)是合法筛选值,原 empty() 判断会丢弃,改为 isset + 非空串判断。
- page/limit 做整数与上限(100)校验,避免非法分页参数。
- 列表接口返回 { list, count },供前端分页使用。
前端
- 补充分页组件,搜索/重置/清理后回到第一页并同时刷新列表与统计。
- 兼容列表接口旧格式(数组)与新格式({ list, count })。
crmeb/app/services目录用于定义项目的业务服务类。
服务类的主要特征和作用包括:
-
服务类封装具体的业务逻辑和规则。
-
完成功能模块的抽象,提供统一的业务接口。
-
解耦项目各部分,降低他们之间的耦合度。
-
提供给上下文的整个环境使用。
具体来说:
-
每个服务类对应一个独立的业务功能或规则集合。
-
类内部可以调用其它模块完成业务需求。
-
对外提供简单的业务接口,隐藏内部实现细节。
-
服务类存在依赖关系,可以互相调用实现聚合服务。
使用服务层设计可以:
-
松耦合各个模块,提高扩展和重用能力。
-
同一个业务规则在多个场景复用。
-
加强项目的可测试性与维护性。
所以此目录定义了项目核心业务服务模块,对外提供可复用的核心能力。