getInfo($condition, $field); return $this->success($info); } /** * 门店sku信息 * @param $condition * @param string $field * @return array */ public function getStoreGoodsSkuInfo($condition, $field = '*'){ $info = model('store_goods_sku')->getInfo($condition, $field); return $this->success($info); } public function checkStoreGoods($goods_ids, $site_id, $store_id){ $goods_list = model('goods')->getList([ ['goods_id', 'in', (string)$goods_ids], ['site_id', '=', $site_id] ], 'price, goods_id'); foreach ($goods_list as $k => $v){ $goods_condition = array( ['goods_id', '=', $v['goods_id']], ['store_id', '=', $store_id] ); $goods_info = model('store_goods')->getInfo($goods_condition, 'id'); //不存在就创建 if(empty($goods_info)){ $data = array( 'goods_id' => $v['goods_id'], 'store_id' => $store_id, 'create_time' => time(), 'price' => $v['price'] ); model('store_goods')->add($data); } } $sku_goods_list = model('goods_sku')->getList([ ['goods_id', 'in', (string)$goods_ids], ['site_id', '=', $site_id] ], 'price, goods_id, sku_id'); foreach ($sku_goods_list as $k => $v){ $sku_goods_condition = array( ['sku_id', '=', $v['sku_id']], ['store_id', '=', $store_id] ); $sku_info = model('store_goods_sku')->getInfo($sku_goods_condition, 'id'); //不存在就创建 if(empty($sku_info)){ $data = array( 'goods_id' => $v['goods_id'], 'store_id' => $store_id, 'sku_id' => $v['sku_id'], 'create_time' => time(), 'price' => $v['price'] ); model('store_goods_sku')->add($data); } } return $this->success(1); } /** * 门店修改商品状态 * @param $goods_ids * @param $goods_state * @param $site_id * @return array */ public function modifyGoodsState($goods_ids, $goods_state, $site_id, $store_id = 0) { if($store_id == 0){ $store_model = new Store(); $store_info = $store_model->getDefaultStore($site_id)['data'] ?? []; $store_id = $store_info['store_id']; } $this->checkStoreGoods($goods_ids, $site_id, $store_id); model('store_goods')->update([ 'status' => $goods_state ], [ [ 'goods_id', 'in', (string)$goods_ids ], ['store_id', '=', $store_id] ]); model('store_goods_sku')->update([ 'status' => $goods_state ], [ [ 'goods_id', 'in', (string)$goods_ids ], ['store_id', '=', $store_id] ]); return $this->success(1); } /** * 修改价格库存 */ public function editStoreGoods($goods_sku_array, $site_id, $store_id, $uid) { $store_stock_model = new \app\model\stock\GoodsStock(); $store_info = model('store')->getInfo([ ['store_id', '=', $store_id] ]); model('goods')->startTrans(); try { foreach ($goods_sku_array as $k => $v) { $sku_info = model("goods_sku")->getInfo([ ['sku.site_id', '=', $site_id], [ 'sku.sku_id', '=', $v[ 'sku_id' ] ] ], "sku.goods_id,sku.stock,sku.price as sku_price,g.is_unify_pirce,g.price, g.goods_class", 'sku',[ ['goods g', 'sku.goods_id=g.goods_id','left'] ]); $goods_info = model('store_goods')->getInfo([ ['goods_id', '=', $sku_info['goods_id']], ['store_id', '=', $store_id] ], 'id'); if(empty($goods_info)){ $data = array( 'goods_id' => $sku_info['goods_id'], 'store_id' => $store_id, 'create_time' => time(), 'price' => $sku_info['price'] ); model('store_goods')->add($data); } $store_sku_info = model('store_goods_sku')->getInfo([ ['sku_id', '=', $v['sku_id']], ['store_id', '=', $store_id] ], 'id'); if(empty($store_sku_info)){ $data = array( 'goods_id' => $sku_info['goods_id'], 'store_id' => $store_id, 'sku_id' => $v['sku_id'], 'create_time' => time(), 'price' => $sku_info['sku_price'] ); model('store_goods_sku')->add($data); } $save_data = []; if(!$sku_info['is_unify_pirce']){ $save_data['price'] = $v['price']; } if ($k == 0 && !empty($save_data)) { model('store_goods')->update($save_data, [ [ 'goods_id', '=', $sku_info[ 'goods_id' ] ] ]); } if(!empty($save_data)) model('store_goods_sku')->update($save_data, [ [ 'sku_id', '=', $v[ 'sku_id' ] ] ]); //统一库存不入库 if(isset($v['stock']) && $store_info && $store_info['stock_type'] == 'store') { $res = $store_stock_model->changeGoodsStock([ 'store_id' => $store_id, 'site_id' => $site_id, 'sku_id' => $v['sku_id'], 'stock' => $v['stock'], 'uid' => $uid, 'goods_class' => $sku_info['goods_class'] ]); } } model('goods')->commit(); return $this->success(); } catch (\Exception $e) { model('goods')->rollback(); return $this->error($e->getMessage()); } } /** * 设置门店商品成本价 * @param $params */ public function setSkuPrice($params){ $goods_id = $params['goods_id']; $site_id = $params['site_id']; $store_id = $params['store_id'] ?? 0; if($store_id == 0){ $store_model = new Store(); $store_info = $store_model->getDefaultStore($site_id)['data'] ?? []; $store_id = $store_info['store_id']; } $result = $this->checkStoreGoods($goods_id, $site_id, $store_id); $goods_condition = array( ['goods_id', '=', $goods_id] ); $goods_info = model('goods')->getInfo($goods_condition, 'cost_price'); $sku_list = model('goods_sku')->getList($goods_condition, 'sku_id,cost_price'); $store_goods_condition = array( ['goods_id', '=', $goods_id], ['store_id', '=', $store_id] ); model('store_goods')->update(['cost_price' => $goods_info['cost_price']], $store_goods_condition); foreach($sku_list as $k => $v){ $store_goods_sku_condition = array( ['sku_id', '=', $v['sku_id']], ['store_id', '=', $store_id] ); model('store_goods_sku')->update(['cost_price' => $v['cost_price']], $store_goods_sku_condition); } return $this->success(); } }