store_id = $event ? $event->store_id : $this->store_id; $this->order_id = $event ? $event->order_id : $this->order_id; $this->order_type = $event ? $event->order_type : $this->order_type; try { // if ($this->order_type == 6) { // $this->scanOrderNotify($event); // } else { try { $this->OrderNotify($event); } catch (\Exception $e) { debug_log($e->getMessage(), 'saas_integral.log'); } // } //$is_print = 1; /** * @var Order $order */ $order = $this->order; // 自提点分红 //$this->shareShop($order, $event); // 积分抵扣的话减去积分 $this->reduceIntegral($order); $this->setReturnData($order); // 分红处理 //BonusPool::levelShare($order->id); // 股东分红处理 //$this->agent_profit($order); //发放核销卡 $this->sendVerifyCard($order->id, $order->saas_id, $order->order_type); // 后台订单提醒 OrderMessage::set($order->id, $order->store_id, $this->order_type, 0); // 代理订单返佣逻辑 // $this->agencyPrice($order->id); // 处理虚拟商品订单状态 if (($order->order_type == 4 && $order->verify_card_id == 0)) { $order->confirm_time = time(); $order->send_time = time(); $order->trade_status = Order::ORDER_FLOW_CONFIRM; if (!$order->save()) { \Yii::warning($order->errors); } } if ($order->order_type == 3 && $order->is_offline == 1) { $order->send_time = time(); $order->trade_status = Order::ORDER_FLOW_SEND; } // 生成点餐号码 // if ($order->order_type == 3 && $order->is_offline == 1) { $order->food_code = self::getFoodCode($order->store_id, $order->md_id); if (!$order->save()) { \Yii::warning(['<============= 订单号:' . $order->order_no .'生成点餐号码', $order->errors]); } // } // 同城配送订单下单 $orderNoHead = substr($order->order_no, 0, 2); if (in_array($orderNoHead, ['AL', OrderNo::ORDER_PT]) && $order->is_delivery == 1) { $local_type = Option::get(OptionSetting::STORE_LOCAL_TYPE, $order->store_id, 'store')['value']; $local_type = Option::get(OptionSetting::STORE_LOCAL_TYPE, $order->store_id, 'pay', $local_type)['value']; if($local_type == 'maiyatian' && !isset($delivery_res) && MaiyatianForm::isopen($order->store_id)){ $delivery_res = MaiyatianForm::order_created($order->store_id, $order->id); \Yii::error('-----------Maiyatian同城配送返回' . Json::encode($delivery_res)); } if($local_type == 'keloop' && !isset($delivery_res) && KeloopForm::isSaasOpen()){ $delivery_res = KeloopForm::order_created($order->store_id, $order->id); \Yii::error('-----------keloop同城配送返回' . Json::encode($delivery_res)); } if($local_type == 'aggregate'){ if(!isset($delivery_res) && $order->alipay_trade_no){ $delivery_info = DeliveryInfo::findOne(['store_id' => $order->store_id, 'order_no' => $order->order_no]); $detail_goods = OrderDetail::find()->where(['order_id' => $order->id])->select('goods_name as name, pic, num, total_price as price')->asArray()->all(); $delivery_res = ADelivery::createOrder(0, $order->store_id, $delivery_info->mini_id, $order->user->alipay_open_id, $detail_goods, $order->order_no, $delivery_info->address_id); \Yii::error('-----------同城配送返回' . Json::encode($delivery_res)); }else if(!isset($delivery_res)){ $detail_goods = OrderDetail::find()->where(['order_id' => $order->id])->select('goods_name as name, pic, num, total_price as price')->asArray()->all(); $delivery_res = Delivery::addOrder($detail_goods, $order->order_no); \Yii::error('-----------同城配送返回' . Json::encode($delivery_res)); } } if($local_type == 'self'){ } } // 订单打印 $printer_order = new PrintOrder($order->store_id, $order->id, 'pay', 0, 0, 0, $order['mch_id']); $printer_order->print_order(); // $form = new NewMerchantForm(); // $form->store_id = $order->store_id; // if ($order->store_id > 0) { // $form->saasGiveIntegral($order->pay_price, $order->user_id, $order->order_no, 1); // } } catch (\Exception $e) { \Yii::error('line->>>' . $e->getLine()); \Yii::error($e->getMessage()); \Yii::error(json_encode($e->getTrace())); \Yii::error('订单支付完成后操作异常'); } } public function setReturnData($order) { //处理联盟券 用户减少 if($order->take_price > 0){ $user = User::findOne($order->user_id); $saas_user = SaasUser::findOne(['mobile' => $user->binding]); if($saas_user){ $take_price = $order->take_price; $before = $saas_user->league_price; $saas_user->updateCounters(['league_price' => -floatval($take_price)]); \app\models\SaaSLeaguePriceLog::setLeaguePriceLog( $order->store_id, $saas_user->id, $take_price, $before, \app\models\SaaSLeaguePriceLog::TYPE_DEDUCTION, \app\models\SaaSLeaguePriceLog::TAKE_TYPE, \app\models\SaaSLeaguePriceLog::ROLE_USER, $order->id ); } } } // private function agencyPrice($order_id){ // try { // $order = Order::findOne($order_id); // //获取代理商ID // $option = Option::get('agency_price_config', 0, 'saas', [])['value']; // if ($option) { // $option = json_decode($option, true); // } // $province_percent = $option['province_percent'] ?? 0; // $city_percent = $option['city_percent'] ?? 0; // $district_percent = $option['district_percent'] ?? 0; // $store = Store::findOne($order->store_id); // $admin_list = Admin::find()->where(['province_id' => $store->province_id, 'is_delete' => 0])->andWhere(['>', 'area_level', 0])->asArray()->all(); // $saasUser = get_saas_user(); // foreach ($admin_list as $item) { // $ag_rebate = 0; // $rate = 0; // $desc = ''; // //省 // if ((int)$item['area_level'] === 3) { // $ag_rebate = $order->ag_rebate * ($province_percent / 100); // $ag_rebate = sprintf("%.2f", $ag_rebate); // $desc = '用户' . $saasUser->name . '下单,订单' . $order->order_no . ',发放 ' . $ag_rebate . '元省代佣金'; // } // //市 // if ((int)$item['area_level'] === 2 && (int)$item['city_id'] === (int)$store->city_id) { // $ag_rebate = $order->ag_rebate * ($city_percent / 100); // $ag_rebate = sprintf("%.2f", $ag_rebate); // $desc = '用户' . $saasUser->name . '下单,订单' . $order->order_no . ',发放 ' . $ag_rebate . '元市代佣金'; // } // //区 // if ((int)$item['area_level'] === 1 && (int)$item['city_id'] === (int)$store->city_id && (int)$item['district_id'] === (int)$store->district_id) { // $ag_rebate = $order->ag_rebate * ($district_percent / 100); // $ag_rebate = sprintf("%.2f", $ag_rebate); // $desc = '用户' . $saasUser->name . '下单,订单' . $order->order_no . ',发放 ' . $ag_rebate . '元区代佣金'; // } // if (!$ag_rebate) { // continue; // } // //给用户增加佣金 // $SaasUser = SaasUser::findOne($item['saas_user_id']); // $SaasUser->share_profit = ($SaasUser->share_profit * 1) + ($ag_rebate * 1); // $res = $SaasUser->save(); // //增加记录 // if ($res) { // $form = new StoreShareMoney(); // $form->user_id = $SaasUser->id; // $form->store_id = $store->id; // $form->profit = $store->profit; // $form->total_price = $order->total_price; // $form->desc = $desc; // $form->order_id = $order_id; // $form->created_at = time(); // $form->type = 1; // $form->status = 0; // $form->commission = $ag_rebate; // $form->is_send = 1; // $form->save(); // } // } // } catch (\Exception $e) { // \Yii::error($e->getMessage()); // } // } /** * @param $order Order */ private function agent_profit($order) { // 判断是否开启奖金池 // $setting = [ // 'is_open_area' => Option::get('is_open_area', $order->store_id, 'bonus_pool', 0)['value'], // ]; // // if (!$setting['is_open_area']) { // \Yii::warning('---------------- 未开启代理分红 -------------------'); // return; // } // 省代 $province_share_holder = ShareHolder::find()->where(['is_delete' => 0, 'status' => 1, 'store_id' => $order->store_id, 'agent_type' => 1, 'province_id' => $order->province_id, 'agent_rate_status' => 1])->andWhere(['>', 'agent_rate', 0])->one(); if (!$province_share_holder) { \Yii::error('-------------- 订单号:' . $order->order_no . ' 未发现省代理----------------'); } else { $detail = new ShareDetail(); $detail->store_id = $order->store_id; $detail->type_id = $order->id; $detail->type = 3; $detail->user_id = $province_share_holder->user_id; $detail->desc = '订单号:'.$order->order_no.'代理分红'; $detail->is_send = 0; $detail->money = round($order->profit * $province_share_holder->agent_rate / 100, 2); $detail->save(); } // 市代 $city_share_holder = ShareHolder::find()->where(['is_delete' => 0, 'status' => 1, 'store_id' => $order->store_id, 'agent_type' => 2, 'city_id' => $order->city_id, 'agent_rate_status' => 1])->andWhere(['>', 'agent_rate', 0])->one(); if (!$city_share_holder) { \Yii::error('-------------- 订单号:' . $order->order_no . ' 未发现市代理----------------'); } else { $detail = new ShareDetail(); $detail->store_id = $order->store_id; $detail->type_id = $order->id; $detail->type = 3; $detail->user_id = $city_share_holder->user_id; $detail->desc = '订单号:'.$order->order_no.'代理分红'; $detail->is_send = 0; $detail->money = round($order->profit * $city_share_holder->agent_rate / 100, 2); $detail->save(); } // 区代 $district_share_holder = ShareHolder::find()->where(['is_delete' => 0, 'status' => 1, 'store_id' => $order->store_id, 'agent_type' => 3, 'district_id' => $order->district_id, 'agent_rate_status' => 1])->andWhere(['>', 'agent_rate', 0])->one(); if (!$district_share_holder) { \Yii::error('-------------- 订单号:' . $order->order_no . ' 未发现区域代理----------------'); } else { $detail = new ShareDetail(); $detail->store_id = $order->store_id; $detail->type_id = $order->id; $detail->type = 3; $detail->user_id = $district_share_holder->user_id; $detail->desc = '订单号:'.$order->order_no.'代理分红'; $detail->is_send = 0; $detail->money = round($order->profit * $district_share_holder->agent_rate / 100, 2); $detail->save(); } } private function reduceIntegral($order) { if ($order->store_id <= 0) { $type = 0; $integral = Json::decode($order->integral_price); $user = SaasUser::findOne($order->saas_id); } else { $type = 1; $integral = Json::decode($order->integral)['forehead_integral'] ?: 0; $user = User::findOne($order->user_id); } // 减去当前用户账户积分 if ($integral > 0) { $before = $user->integral; $user->integral -= $integral; if ($user->save()) { $log = new AccountLog(); $log->store_id = $order->store_id; $log->user_id = 0; if ($type) { $log->user_id = $user->id; } else { $log->saas_id = $user->id; } $log->type = AccountLog::TYPE_INTEGRAL; $log->log_type = AccountLog::LOG_TYPE_EXPEND; $log->amount = $integral; $log->desc = "订单积分抵扣支付,订单号为:{$order->order_no}。"; $log->before = $before; $log->after = $user->integral; $log->operator = ''; $log->operator_id = 0; $log->operator_type = AccountLog::TYPE_OPERATOR_NORMAL; $log->created_at = time(); $log->order_id = $order->id; $log->order_type = AccountLog::TYPE_PLATFORM_ORDER; if (!$log->save()) { debug_log($log->errors,'saas_integral.log'); }; } else { debug_log($user->errors,'saas_integral.log'); } } } /** * 发放核销卡 */ private function sendVerifyCard($order_id, $user_id, $order_type) { $goods_id = OrderDetail::find()->select('goods_id')->where(['order_id' => $order_id,'is_delete' => 0])->asArray()->all(); foreach ($goods_id as $k => $v) { $verify_card_info = Goods::find()->select('id, verify_card_id')->where(['id' => $v['goods_id'], 'is_delete' => 0])->asArray()->one(); if (empty($verify_card_info)) { continue; } $this->startSendVerifyCard($verify_card_info['verify_card_id'], $verify_card_info['id'], $user_id, $order_type); } } /** * 核销卡发放 */ private function startSendVerifyCard($verify_card_id, $goods_id, $user_id, $order_type){ if (!empty($verify_card_id)){ $verify_card_id_arr = explode(',', $verify_card_id); $res = Tools::getVerifyList($verify_card_id_arr); \Yii::error($res); foreach($res as $value){ $verify_form = new VerifyCardSale(); $verify_form->store_id = $this->store_id; $verify_form->user_id = $user_id; $verify_form->verify_card_id = $value['id']; if ($value['type'] == 1) { //查询核销卡使用总次数 $left_info = VerifyCard::find()->select('total_num, expire_day')->where([ 'id' => $value['id'], 'is_delete' => 0 ])->asArray()->one(); $verify_form->left_num = $left_info['total_num']; } else { $verify_form->left_num = 1; } $account = VerifyCardAccount::find()->where(['store_id' => $value['store_id'], 'card_id' => $value['id'], 'status' => 0])->one(); if (!$account) { \Yii::error('================== 卡券发放结果:未找到数据,卡券id为:' . $value['id']); continue; } $verify_form->account_id = $account->id; $verify_form->sale_time = time(); if ($value['date_type'] == 1) { $verify_form->end_time = time() + $left_info['expire_day'] * (3600*24); } else { $verify_form->end_time = $value['end_time']; } $verify_form->goods_id = $goods_id; $verify_form->order_type = $order_type; if ($verify_form->save()) { if ($value['type'] == 1) { //核销卡核销数量增加 $verify_card_form = VerifyCard::findOne([ 'id' => $value['id'], 'is_delete' => 0 ]); $verify_card_form->use_num += 1; if (!$verify_card_form->save()) { continue; } } else { $card = VerifyCard::findOne(['id' => $value['id'], 'is_delete' => 0]); $account = VerifyCardAccount::findOne($verify_form->account_id); $account->status = 1; if (!$account->save()) { continue; } $card->send_times += 1; $card->save(); } } else { \Yii::warning($verify_form->errors); } } } } // 自提点分销 public function shareShop($order) { return false; if ($order->is_offline == 1) { $shop = Shop::findOne($order->shop_id); if ($shop) { $user = User::findOne($order->user_id); $info = addslashes("会员 ".$user->nickname." 下单,获得奖励"); $orderDetail = OrderDetail::find()->select(['goods_id','total_price','num'])->where(['order_id' => $order->id])->all(); $shop_bili = Option::get(OptionSetting::SHOP_RATIO, $order->store_id)['value']; $shop_bili_type = Option::get(OptionSetting::SHOP_RATIO_TYPE, $order->store_id)['value']; $money = 0; foreach ($orderDetail as $v){ $goods_money = $v['total_price']; if($shop_bili_type == 2){ $money += $v['num']*$shop_bili; }else{ $money += $goods_money*$shop_bili * 0.01; } } if ($money > 0.01) { $share_form = new ShopShare(); $share_form->store_id = $order->store_id; $share_form->order_id = $order->id; $share_form->shop_id = $shop->id; $share_form->amount = $money; $share_form->user_id = $order->user_id; $share_form->the_desc = $info; $share_form->created_at = time(); $share_form->save(); } } } } // 商城 private function OrderNotify($event) { $order = $this->order = Order::findOne(['id' => $this->order_id]); //$user = User::findOne($order->user_id); // 如果是余额抵扣订单,两条日志,分别是线上支付和余额支付 $pay_price = $order->pay_price; // if ($order->is_combine_pay == Order::IS_COMBINE_PAY && $order->combine_money > 0) { // $money = $user->money; // $user->money = $user->money - $order->combine_money; // if ($user->save()) { // $log = new AccountLog(); // $log->store_id = $order->store_id; // $log->user_id = $user->id; // $log->type = AccountLog::TYPE_BALANCE; // $log->log_type = AccountLog::LOG_TYPE_EXPEND; // $log->amount = $order->combine_money; // $log->desc = "商城订单余额支付,订单号为:{$order->order_no}。"; // $log->before = $money; // $log->after = $user->money; // $log->operator = ''; // $log->operator_id = 0; // $log->operator_type = AccountLog::TYPE_OPERATOR_NORMAL; // $log->created_at = time(); // $log->order_id = $order->id; // $log->order_type = AccountLog::TYPE_PLATFORM_ORDER; // $log->save(); // $pay_price = $order->pay_price - $order->combine_money; // } // } // if ($pay_price > 0 && $order->pay_type != 3) { // $log = new AccountLog(); // $log->store_id = $order->store_id; // $log->user_id = $user->id; // $log->type = $order->pay_type == 1 ? AccountLog::TYPE_WECHAT : AccountLog::TYPE_ALIPAY; // $log->log_type = AccountLog::LOG_TYPE_EXPEND; // $log->amount = $pay_price; // $log->desc = "订单线上支付,订单号为:{$order->order_no}。"; // $log->before = 0; // $log->after = 0; // $log->operator = ''; // $log->operator_id = 0; // $log->operator_type = AccountLog::TYPE_OPERATOR_NORMAL; // $log->created_at = time(); // $log->order_id = $order->id; // $log->order_type = AccountLog::TYPE_PLATFORM_ORDER; // $log->save(); // } // // 首次付款,绑定上下级 // if ($user->parent_id == 0 && $user->parent_user_id > 0) { // $form = new BindForm(); // $form->user_id = $order->user_id; // $form->store_id = $order->store_id; // $form->parent_id = $user->parent_user_id; // $form->condition = 2; // $bindForm = $form->save(); // if ($bindForm['code'] == 0) { // $form = new ShareMoneyForm(); // $form->order = $this->order; // $form->order_type = $event->order_type; // $form->setData(); // } // } // 预约商品库存操作 BookOrderNum::bookNumReduce($order); // // 消费满指定金额自动成为分销商 // $this->autoBecomeShare($order->user_id, $order->store_id, 'STORE'); // // 购买指定或任意商品自动成为分销商 // $this->autoBuyGood($order->user_id, $order->store_id, $order->id); // if ($this->order->pay_type != 2) { // // 支付成功赠送优惠券 // $this->paySendCoupon($order->store_id, $order->user_id); // // 支付成功赠送卡券 // $this->paySendCard($order->store_id, $order->user_id, $order->id); // } // 记录购买记录 $this->setBuyData($order); // // 消息通知 // $goods = Goods::findOne(OrderDetail::findOne(['order_id' => $this->order_id])->goods_id); // NoticeSend::OrderPay($order->user_id, $order->mobile, $order->order_no, $order->pay_price, $goods->name); // NoticeSend::PlaceOrder($order->order_no, $order->mch_id); return true; } // 当面付订单 private function scanOrderNotify($event) { $order = $this->order = \app\plugins\scanCodePay\models\Order::findOne(['id' => $this->order_id]); $user = User::findOne($order->user_id); // 如果是余额抵扣订单,两条日志,分别是线上支付和余额支付 $pay_price = $order->pay_price; if ($order->is_combine_pay == Order::IS_COMBINE_PAY && $order->combine_money > 0) { $money = $user->money; $user->money = $user->money - $order->combine_money; if ($user->save()) { $log = new AccountLog(); $log->store_id = $order->store_id; $log->user_id = $user->id; $log->type = AccountLog::TYPE_BALANCE; $log->log_type = AccountLog::LOG_TYPE_EXPEND; $log->amount = $order->combine_money; $log->desc = "当面付余额支付,订单号为:{$order->order_no}。"; $log->before = $money; $log->after = $user->money; $log->operator = ''; $log->operator_id = 0; $log->operator_type = AccountLog::TYPE_OPERATOR_NORMAL; $log->created_at = time(); $log->order_id = $order->id; $log->order_type = AccountLog::TYPE_SCAN_CODE_PAY; $log->save(); $pay_price = $order->pay_price - $order->combine_money; } } $log = new AccountLog(); $log->store_id = $order->store_id; $log->user_id = $user->id; $log->type = $order->pay_type == 1 ? AccountLog::TYPE_WECHAT : AccountLog::TYPE_ALIPAY; $log->log_type = AccountLog::LOG_TYPE_EXPEND; $log->amount = $pay_price; $log->desc = "当面付在线支付,订单号为:{$order->order_no}。"; $log->before = 0; $log->after = 0; $log->operator = ''; $log->operator_id = 0; $log->operator_type = AccountLog::TYPE_OPERATOR_NORMAL; $log->created_at = time(); $log->order_id = $order->id; $log->order_type = AccountLog::TYPE_SCAN_CODE_PAY; $log->save(); // 首次付款,绑定上下级 if ($user->parent_id == 0) { $form = new Bind(); $form->user_id = $order->user_id; $form->store_id = $order->store_id; $form->parent_id = $user->parent_user_id; $form->condition = 2; $bindForm = $form->save(); if ($bindForm['code'] == 0) { $form = new ShareMoneyForm(); $form->order = $this->order; $form->order_type = $event->order_type; $form->setData(); } } // 消费满指定金额自动成为分销商 $this->autoBecomeShare($order->user_id, $order->store_id, 'STORE'); // 购买指定或任意商品自动成为分销商 $this->autoBuyGood($order->user_id, $order->store_id, $order->id); if (in_array($this->order->pay_type, [1, 3])) { // 支付成功赠送优惠券 $this->paySendCoupon($order->store_id, $order->user_id); // 支付成功赠送卡券 $this->paySendCard($order->store_id, $order->user_id, $order->id); } // 记录购买记录 $this->setBuyData($order); // 消息通知 $goods = Goods::findOne(OrderDetail::findOne(['order_id' => $this->order_id])->goods_id); NoticeSend::OrderPay($order->user_id, $order->mobile, $order->order_no, $order->pay_price, $goods->name); NoticeSend::PlaceOrder($order->order_no, $order->mch_id, $order->store_id, $order); return true; } // 支付宝当面付 private function alipayScanOrderNotify($event) { $order = $this->order = \app\plugins\scanCodePay\models\Order::findOne(['id' => $this->order_id]); $user = User::findOne($order->user_id); $log = new AccountLog(); $log->store_id = $this->store_id; $log->user_id = $user->id; $log->type = AccountLog::TYPE_ALIPAY; $log->log_type = AccountLog::LOG_TYPE_EXPEND; $log->amount = $order->pay_price; $log->desc = "当面付支付宝支付,订单号为:{$order->order_no}。"; $log->before = 0; $log->after = 0; $log->operator = ''; $log->operator_id = 0; $log->operator_type = AccountLog::TYPE_OPERATOR_NORMAL; $log->created_at = time(); $log->order_id = $order->id; $log->order_type = AccountLog::TYPE_SCAN_CODE_PAY; $log->save(); // 记录购买记录 $this->setBuyData($order); return true; } /** * 支付成功送优惠券 */ private function paySendCoupon($store_id, $user_id) { $form = new CouponPaySend(); $form->store_id = $store_id; $form->user_id = $user_id; $form->save(); } /** * 消费满指定金额自动成为分销商 * @param $user_id integer 用户id */ private function autoBecomeShare($user_id, $store_id, $type = null) { $setting = Option::get('share_basic_setting', $store_id); $setting = $setting ? Json::decode($setting['value']) : []; $auto_share_val = floatval($setting['auto_share_val']['value']); if ($auto_share_val == 0) { return; } $share = Share::findOne(['user_id' => $user_id, 'is_delete' => 0, 'store_id' => $store_id]); if ($share && $share->status == 1) { return; } $consumption_sum = Order::find()->where(['user_id' => $user_id, 'is_delete' => 0, 'is_pay' => 1])->sum('pay_price'); $consumption_sum = floatval(($consumption_sum ? $consumption_sum : 0)); if ($consumption_sum < $auto_share_val) { return; } if (!$share || $share->status == 2) { $share = new Share(); $share->user_id = $user_id; $share->mobile = ''; $share->name = ''; $share->is_delete = 0; $share->store_id = $store_id; } $share->status = 1; $share->created_at = time(); $share->save(); $user = User::findOne($user_id); $user->time = time(); $user->is_distributor = 1; $user->save(); } /** * 购买指定商品成为分销商 */ public function autoBuyGood($user_id, $store_id, $order_id, $type = 0) { $setting = Option::get('share_basic_setting', $store_id); $setting = $setting ? Json::decode($setting['value']) : []; //如果开启无需审核才能开始走下面逻辑 if (intval($setting['share_condition']['value']) !== 2) { return; } // 购买商城成分销商关闭状态不执行 if ($setting['share_goods_status']['value'] == 0) { return; } $share = Share::findOne(['user_id' => $user_id, 'is_delete' => 0, 'store_id' => $store_id]); if ($share && $share->status == 1) { return; } $goodIds = OrderDetail::find()->where(['order_id' => $order_id])->select('goods_id')->all(); $sign = false; // 购买任意商品 if ($setting['share_goods_status']['value'] == 1) { $sign = true; } // 购买指定商品自动成为分销商 if ($setting['share_goods_status']['value'] == 2) { foreach ($goodIds as $item) { $goods_ids = \explode(',', $setting['share_goods_id']['value']); if (in_array($item->goods_id, $goods_ids)) { $sign = true; break; } } } if ($sign) { if (!$share || $share->status == 2) { $share = new Share(); $share->user_id = $user_id; $share->mobile = ''; $share->name = ''; $share->is_delete = 0; $share->store_id = $store_id; } $share->status = 1; $share->created_at = time(); $share->save(); $user = User::findOne($user_id); $user->time = time(); $user->is_distributor = 1; $user->save(); } } /** * 支付成功送卡券 */ private function paySendCard($store_id, $user_id, $order_id) { $form = new CardSend(); $form->store_id = $store_id; $form->user_id = $user_id; $form->order_id = $order_id; $form->save(); } // 售后订单申请成功,相关操作 public function refund(OrderEvent $event = null) { $this->store_id = $event ? $event->store_id : $this->store_id; $this->order_id = $event ? $event->order_id : $this->order_id; $this->order_type = $event ? $event->order_type : $this->order_type; $this->order_refund_no = $event ? $event->order_refund_no : $this->order_refund_no; $this->form_id = $event ? $event->form_id : $this->form_id; try { $order = Order::findOne(['id' => $this->order_id]); NoticeSend::MchCancel($order->order_no, $order->mch_id); } catch (\Exception $e) { } } public function setBuyData($order) { $key = "buy_data"; // 用户 $user = User::findOne($order->user_id); $goods = OrderDetail::findOne(['order_id' => $order->id]); $data = (object)null; $data->type = 0; $data->store_id = $order->store_id; $data->order_no = $order->order_no; $data->user = $user->nickname; $data->goods = $goods->goods_id; $data->address = $goods->goods_name; $data->avatar_url = $user->avatar_url; $data->time = time(); $new = json_encode($data); $cache = cache(); $cache->set($key, $new, 300); } /** * 获取点餐号码 */ public static function getFoodCode($store_id, $md_id = 0) { $start_time = strtotime(date('Y-m-d 00:00:00')); $end_time = strtotime(date('Y-m-d 23:59:59')); $result = Order::find()->where(['store_id' => $store_id, 'md_id' => $md_id]) ->andWhere([ 'and', [ '>=', 'created_at', $start_time ], [ '<=', 'created_at', $end_time ] ])->max('food_code'); return str_pad((string)(intval($result) + 1), 4, "0", STR_PAD_LEFT); } }