toOncecard($item, $order_info); break; case ''://实物 $result = $this->toGoods($item, $order_info); break; case 'service'://服务 $result = $this->toService($item, $order_info); break; } if (!empty($result)) { if ($result[ 'code' ] < 0) { return $result; } } //累加销量 $goods_data_model = new GoodsData(); $goods_data_model->incGoodsSaleNum($item); return $this->success(); } /** * 生成卡项 * @param $params * @return array */ public function toOncecard($params, $order_info) { $member_oncecard_model = new MemberOnceCard(); $cashier_type = $order_info['cashier_type']; $is_gift = $params['is_gift']; if($cashier_type == 'online' || $is_gift){ $params['delivery_method'] = 'buy'; } $num = $params['num']; $i = 0; $create_card_id_array = []; while($i < $num){ $result = $member_oncecard_model->create($params); if ($result[ 'code' ] < 0) { return $result; } $create_card_id_array[] = $result['data']; $i++; } if(!empty($create_card_id_array)){ $order_goods_id = $params['order_goods_id']; $create_card_id = implode(',', $create_card_id_array); $condition = array( ['order_goods_id', '=', $order_goods_id] ); $data = array( 'create_card_id' => $create_card_id ); model('store_cashier_order_goods')->update($data, $condition); } return $this->success(); } /** * 生成预约服务 * @param $order_info * @return array */ public function toService($params, $order_info) { $extend = json_decode($params[ 'extend' ], true); $member_oncecard_model = new MemberOnceCard(); $cashier_type = $order_info['cashier_type']; $is_gift = $params['is_gift']; if($cashier_type == 'online' || $is_gift){ $result = $member_oncecard_model->create($params); if ($result[ 'code' ] < 0) { return $result; } $create_card_id_array = [$result['data']]; if(!empty($create_card_id_array)){ $order_goods_id = $params['order_goods_id']; $create_card_id = implode(',', $create_card_id_array); $condition = array( ['order_goods_id', '=', $order_goods_id] ); $data = array( 'create_card_id' => $create_card_id ); model('store_cashier_order_goods')->update($data, $condition); } } if (!empty($extend)) { $order_id = $params[ 'order_id' ]; $order_condition = array ( [ 'order_id', '=', $order_id ] ); $order_info = model('store_cashier_order')->getInfo($order_condition); //去生成预约服务 $goods_id = $params[ 'goods_id' ]; $sku_id = $params[ 'sku_id' ]; $store_id = $params[ 'store_id' ]; $site_id = $params[ 'site_id' ]; $member_id = $params[ 'member_id' ]; $site_type = $order_info[ 'site_type' ]; $yuyue_goods_list = [ [ 'sku_id' => $sku_id, 'goods_id' => $goods_id, 'servicer_id' => $extend[ 'servicer_id' ] ?? 0, 'card_id' => 0 ] ]; $yuyue_model = new Yuyue(); $yuyue_data = array ( 'date' => $extend[ 'date' ] ?? '', 'time' => $extend[ 'time' ] ?? '', 'remark' => $extend[ 'remark' ] ?? '', 'store_id' => $store_id, 'member_id' => $member_id, 'site_id' => $site_id, 'app_module' => $site_type, 'goods' => $yuyue_goods_list ); $result = $yuyue_model->addYuyue($yuyue_data); } return $this->success(); } /** * 实物处理 * @param $params * @param $order_info * @return array */ public function toGoods($params, $order_info){ $cashier_type = $order_info['cashier_type']; $is_gift = $params['is_gift']; if($cashier_type == 'online' || $is_gift){ $member_oncecard_model = new MemberOnceCard(); $result = $member_oncecard_model->create($params); if ($result[ 'code' ] < 0) { return $result; } $create_card_id_array = [$result['data']]; if(!empty($create_card_id_array)){ $order_goods_id = $params['order_goods_id']; $create_card_id = implode(',', $create_card_id_array); $condition = array( ['order_goods_id', '=', $order_goods_id] ); $data = array( 'create_card_id' => $create_card_id ); model('store_cashier_order_goods')->update($data, $condition); } }else{ //扣除库存 $cashier_order_goods_model = new CashierOrderGoods(); $result = $cashier_order_goods_model->orderGoodsOutput($params); } return $result; } /** *关闭收货相关的业务 * @param $params */ public function tradeClose($params) { $order_goods_id = $params[ 'order_goods_id' ]; $order_id = $params[ 'order_id' ]; $trade_type = $params[ 'trade_type' ]; $create_card_id = $params['create_card_id'] ?? ''; $refund_status = $params['refund_status']; if(!empty($create_card_id)){ $create_card_id = explode(',', $create_card_id); $member_oncecard_model = new MemberOnceCard(); $member_oncecard_model->memberOncecardClose($create_card_id); } //todo 考虑退次卡 $result = event('CashierTradeClose', $params, true); if (empty($result)) { switch ( $trade_type ) { case 'oncecard'://卡项 break; case 'service'://服务商品 break; case ''://实物商品 break; } return $this->success(); } else { return $result; } } }