1 ); model('store_cashier_order_goods')->update($data, $condition); return $this->success(); } /** * 实物商品出库 * @param $params */ public function orderGoodsOutput($params){ $order_goods_id = $params['order_goods_id']; $order_goods_condition = array( ['order_goods_id', '=', $order_goods_id] ); $info = model('store_cashier_order_goods')->getInfo($order_goods_condition); if(empty($info)){ return $this->error(); } $is_dec_stock = $info['is_dec_stock']; if($is_dec_stock == 0){ //扣除库存 $stock_model = new Stock(); $goods_sku_list = array( [ 'goods_sku_id' => $params['sku_id'], 'goods_id' => $params['goods_id'], 'goods_num' => $params['num'] ] ); $stock_params = [ 'site_id' => $params['site_id'], 'store_id' => $params['store_id'], 'goods_sku_list' => $goods_sku_list, 'is_dec_sale_stock' => 1 ]; $result = $stock_model->sellOutput($stock_params); if($result['code'] < 0){ return $result; } $this->setOrderGoodsIsDecStock($order_goods_condition); } return $this->success(); } /** * 获取订单项的真实商品金额 * @param $order_goods_info * @param $order_info */ public function getOrderGoodsRealMoney($order_goods_info) { $order_goods_id = $order_goods_info[ 'order_goods_id' ]; //计算当前订单项的优惠 $order_offset_model = new CashierOrderOffset(); $discount_money = $order_offset_model->getOrderGoodsOffsetMoney($order_goods_id); $real_goods_money = $order_goods_info[ 'goods_money' ] - $discount_money;//真实商品金额 $real_goods_money = $real_goods_money < 0 ? 0 : $real_goods_money; return $real_goods_money; } /** * 订单项关闭 * @param $params */ public function orderGoodsClose($params) { $order_id = $params[ 'order_id' ]; $order_goods_id = $params[ 'order_goods_id' ]; //管理核销相关 $order_trade_model = new CashierTrade(); $order_common_model = new CashierOrderCommon(); $order_condition = array ( [ 'order_id', '=', $order_id ] ); $order_info = $order_common_model->getOrderInfo($order_condition)[ 'data' ] ?? []; if (empty($order_info)) return $this->error([], '订单不存在'); $order_goods_condition = array( ['order_goods_id', '=', $order_goods_id] ); $order_goods_info = model('store_cashier_order_goods')->getInfo($order_goods_condition); $status = $order_goods_info['order_goods_status']; if($status == 'close'){ return $this->error([], '订单项不可以重复关闭'); } $order_goods_data = array( 'order_goods_status' => 'close' ); model('store_cashier_order_goods')->update($order_goods_data, $order_goods_condition); $trade_result = $order_trade_model->tradeClose($order_goods_info); if ($trade_result[ 'code' ] < 0) return $trade_result; // 订单项关闭 event('CashierOrderGoodsClose', ['order_goods_id' => $order_goods_id, 'order_id' => $order_id, 'site_id' => $params['site_id'] ]); return $this->success(); } }