model = new RuleAddedComponent(); // $this->validate = true; // $this->validateClass = new RuleAddedValidate(); } public function select(Request $request): Response { [$where, $format, $limit, $field, $order] = $this->selectInput($request); $order = $request->get('order', 'desc'); $field = $field ?? 'rule_added_component_addtimes'; $query = $this->doSelect($where, $field, $order); return $this->doFormat($query, $format, $limit); } protected function afterQuery($items) { foreach ($items as &$item) { $goods = []; $goodsIds = []; if (!empty($item->rule_added_component_goods_json)) { $goodsJson = json_decode($item->rule_added_component_goods_json, true); foreach ($goodsJson as $item2) { $goodsInfo = []; if (isset($item2['goods_id'])) { $goodsInfo['goods_name'] = $item2['goods_name']; $sku = GoodsSku::where('goods_sku_id', $item2['goods_sku_id'])->select('goods_sku_specs_json')->first(); if (!empty($sku->goods_sku_specs_json)) { $specsJson = json_decode($sku->goods_sku_specs_json, true); $skuTitle = ''; foreach ($specsJson as $item3) { if (is_array($item3)) { $item3 = implode(',', $item3); } $skuTitle .= $item3 . '-'; } $goodsInfo['sku_title'] = rtrim($skuTitle, '-'); } } if (isset($item2['coupon_id'])){ $coupon = Coupon::where('coupon_id',$item2['coupon_id'])->select('coupon_name')->first(); $goods[] = ['goods_name'=>$coupon->coupon_name]; } if (!empty($goodsInfo)) { $goods[] = $goodsInfo; } // if (isset($item2['goods_id'])) { // $goodsIds[] = $item2['goods_id']; // }elseif (isset($item2['coupon_id'])){ // $goodsIds[] = $item2['coupon_id']; // } } $item->rule_added_component_goods_json = $goodsJson; } $item->rule_added_component_goods_nbr = intval($item->rule_added_component_goods_nbr); // $item->goodsIds = $goodsIds; $item->goods = $goods; } return $items; } // protected function updateInput(Request $request): array // { // $primary_key = $this->model->getKeyName(); // $id = $request->post($primary_key); // $data = $this->inputFilter($request->post()); // if (!empty($data['rule_pricing_goods_json'])) { // $data['rule_pricing_goods_json'] = json_encode(explode(',', $data['rule_pricing_goods_json'])); // } else { // $data['rule_pricing_goods_json'] = '[]'; // } // $model = $this->model->find($id); // if (!$model) { // throw new BusinessException('记录不存在', 2); // } // unset($data[$primary_key]); // return [$id, $data]; // } }