join('goods_category_rel c', 'g.goods_id = c.goods_id') // ->where('c.store_id',0) // ->where('g.is_delete',0) // ->whereIn('c.category_id', $categoryIds) // ->whereIn('g.channel',$channels) // ->order("g.goods_id asc") // ->select() // ->toArray(); if (!$goods) { return true; } //更新总后台当前商品的价格 GoodsModel::whereIn('goods_id', array_column($goods, "goods_id"))->update(['markup_rate' => $rate, 'update_time' => time()]); foreach ($goods as $key => $value) { //更新origin_goods_id为当前商品id的价格 $goods_list = GoodsModel::where('origin_goods_id', $value['goods_id']) ->where('is_delete', 0) ->field(['goods_id','cost_price_min','goods_price_min','markup_rate']) ->select() ->toArray(); if (!$goods_list) { continue; } $item = $goods_list[0]; // if ($item['markup_rate'] > 0) { // $item['cost_price_min'] = round($item['cost_price_min'] * (1 - ($rate / 100)), 0); // } $item['cost_price_min'] = $value['cost_price_min'];//设置原始数据的成本价 $cost_price = round($item['cost_price_min'] / (1 - ($rate / 100)), 0); $profit = (float)$item['goods_price_min'] - (float)$cost_price; $profit_rate = (float)$item['goods_price_min'] > 0 ? bcmul((string)($profit / (float)$item['goods_price_min']) , (string)100, 2) : 0.00; $goodsData = [ 'cost_price_min' => $cost_price, 'after_markup_price' => $cost_price, 'profit_rate' => $profit_rate, 'profit' => $profit, 'markup_rate' => $rate, 'update_time' => time() ]; GoodsModel::whereIn('goods_id', array_column($goods_list, "goods_id"))->update($goodsData); $goodsSkuData = [ 'cost_price' => $cost_price, 'update_time' => time() ]; GoodsSku::whereIn('goods_id', array_column($goods_list, "goods_id"))->update($goodsSkuData); } return true; } }