mirror of
https://github.com/crmeb/CRMEB.git
synced 2026-10-28 13:31:04 +00:00
加购策略 - virtual Handler::getCartStrategy() 由 cart/多品改为 cart_mode=direct、multi_item=false, 中台据此下发 cart_button=0,列表与详情只保留「立即购买」。 - 详情页 direct 模式不再写购物车:选中规格后跳单品直购页 /pages/center/order/create/index?product_id=&sku_unique=&product_type=&num=; 多规格首次点击先弹规格窗确认规格,再次点击直接下单。 - 列表卡片 cart_button=0 时展示「立即购买」,点击整行进详情。 - StoreCartServices::setCart() 增加 isDirectCartMode() 校验,new=false 时抛 「该商品不支持加入购物车,请直接购买」,防止其他入口绕过 UI 加购。 自定义表单 - CenterProductServices::hasCustomForm() 统一判定(兼容 JSON 字符串/空数组/已解码数组), 5 处 cart_button 计算与 cart_strategy 组装均按 direct 处理。 - StoreCartServices::setCart() 增加 hasCustomForm() 校验,new=false 时直接拦截。 商品图片 - getList/productDetail 的 image、recommend_image、slider_image 与 SKU pic 统一 set_file_url 补全站点域名,与后台列表口径一致,修复图片裂图。 - 同步更新 .crmeb 用户端购物车文档与虚拟商品 README、详情页 mock 数据。
crmeb/app/services目录用于定义项目的业务服务类。
服务类的主要特征和作用包括:
-
服务类封装具体的业务逻辑和规则。
-
完成功能模块的抽象,提供统一的业务接口。
-
解耦项目各部分,降低他们之间的耦合度。
-
提供给上下文的整个环境使用。
具体来说:
-
每个服务类对应一个独立的业务功能或规则集合。
-
类内部可以调用其它模块完成业务需求。
-
对外提供简单的业务接口,隐藏内部实现细节。
-
服务类存在依赖关系,可以互相调用实现聚合服务。
使用服务层设计可以:
-
松耦合各个模块,提高扩展和重用能力。
-
同一个业务规则在多个场景复用。
-
加强项目的可测试性与维护性。
所以此目录定义了项目核心业务服务模块,对外提供可复用的核心能力。