setName('ProductPriceUpdate') ->setDescription('商品价格更新'); } protected function execute(Input $input, Output $output) { $output->writeln('定时任务执行中...'); $this->priceUpdate(); $output->writeln('定时任务执行完成'); } private function priceUpdate() { // 获取商品数据 $productData = Db::name('store_product')->where(['product_id' => self::PRODUCT_IDS])->select()->toArray(); /** @var ProductRepository $repository */ $repository = app()->make(ProductRepository::class); foreach ($productData as $product) { $log = [ 'product_id' => $product['product_id'], 'old_price' => $product['price'], 'number' => self::NUMBER, 'new_price' => $product['price'] + self::NUMBER, ]; Db::name('product_price_update_log')->insert($log); $attrValue = Db::name('store_product_attr_value')->where(['product_id' => $product['product_id']])->select()->toArray(); $attrValue[0]['price'] = $attrValue[0]['price'] + self::NUMBER; $content = Db::name('store_product_content')->where(['product_id' => $product['product_id']])->field('content')->find(); // $update = [ // // 'couponData' => [], // // 'is_gift_bag' => $product['is_gift_bag'], // ]; $update = [ 'image' => $product['image'], 'slider_image' => explode(',', $product['slider_image']), 'store_name' => $product['store_name'], 'store_info' => $product['store_info'], 'keyword' => $product['keyword'], 'bar_code' => 0, 'brand_id' => $product['brand_id'], 'cate_id' => $product['cate_id'], 'mer_cate_id' => [], 'unit_name' => $product['unit_name'], 'sort' => $product['sort'], 'is_good' => $product['is_good'], 'video_link' => '', 'temp_id' => $product['temp_id'], 'content' => $content['content'], 'spec_type' => $product['spec_type'], 'extension_type' => $product['extension_type'], 'attr' => [], 'attrValue' => $attrValue, 'give_coupon_ids' => [], 'volunteer' => $product['volunteer'], 'type' => $product['type'], 'pension' => $product['pension'], 'commission' => $product['commission'], 'pension_is' => $product['pension_is'], 'share_is' => $product['share_is'], 'ficti' => $product['ficti'], 'icon_type' => [], 'status' => $product['status'] ]; $repository->update($product['product_id'], $update, self::MER_ID); Db::name('product_share')->where('product_id', $product['product_id'])->where('share_channel', 1)->update(['url' => '']); } // // 获取当前数据 // $productData = Db::name('store_product')->where(['product_id' => self::PRODUCT_IDS])->field('product_id,price')->select()->toArray(); // $attrData = Db::name('store_product_attr_value')->where(['product_id' => self::PRODUCT_IDS])->field('product_id,price')->select()->toArray(); // Db::startTrans(); // try { // foreach ($productData as $product) { // $log = [ // 'product_id' => $product['product_id'], // 'old_price' => $product['price'], // 'number' => self::NUMBER, // 'new_price' => $product['price'] + self::NUMBER, // ]; // Db::name('product_price_update_log')->insert($log); // // Db::name('store_product')->where(['product_id' => $product['product_id']])->inc('price', self::NUMBER)->update(); // Db::name('store_product_attr_value')->where(['product_id' => $product['product_id']])->inc('price', self::NUMBER)->update(); // } // // ; // Db::commit(); // return true; // } catch (\Exception $e) { // Db::rollback(); // throw $e; // } } }