自己做开箱网站,cms企业网站源码,搜狗站长平台,Wordpress幻灯片滑块设置1. 新增操作 // 原则#xff0c;所有服务类只有一个public入口,或者多个public入口#xff0c;但是他们做都是同一件事情
Class CreateService {// 创建类的入口, 根据dto去新建public function create(Dto $dto){// 先构建model对象, 不要在事务期间构建#xff0c;减少事务…1. 新增操作 // 原则所有服务类只有一个public入口,或者多个public入口但是他们做都是同一件事情
Class CreateService {// 创建类的入口, 根据dto去新建public function create(Dto $dto){// 先构建model对象, 不要在事务期间构建减少事务等待$good $this-buildGood($designProduct, $dto);$good-setRelation(aList, $this-buildAList($dto));$good-setRelation(bList, $this-buildBList($dto));DB::transaction(function () use ($good) {// 保存model对象// 主表$good-save();// 主表关联其他表$good-aList()-saveMany($designReference-aList-all());// 主表关联其他表$good-bList()-saveMany($designReference-bList-all());// 触发事件,要delay延迟事件确保事务提交后触发delay_event(new GoodCreated());});}// 根据product类去新建public function createByProduct(Product $product) {// build reference// save()}/*** param Dto $dto* return Collection*/protected function buildAList(Dto $dto): Collection {$newCollection new Collection();$$list array_filter_unique(explode(,, $dto-getName()));if (empty($list)) {return $newCollection;}foreach ($list as $name) {$newCollection-add(new GoodAList([name $name,]));}return $newCollection;}protected function buildBList(Dto $dto): Collection {$newCollection new Collection();if (!empty($dto-getBName())) {$newCollection-add(new GoodBList([country_name $dto-getBName(),]));}return $newCollection;}/*** param Product $product* param Dto $dto* return Good*/protected function buildGood(Product $product,Dto $dto): Good {return new Good([updated_at $dto-getDataUpdatedAt(),band_id $product-band_id,]);}}$service new CreateService();
$service-create();