$order['order_no'], // 商品名称 'product_name' => $this->formatProductName($order['product']), // 订单金额 'pay_price' => $order['pay_price'], // 支付方式 'pay_type' => OrderPayTypeEnum::data()[$order['pay_type']['value']]['name'], // 支付时间 'pay_time' => date('Y-m-d H:i:s', $order['pay_time']), // 收货人 'name' => empty($order['address']) ? '' : $order['address']["name"], // 联系电话 'phone' => empty($order['address']) ? '' : $order['address']["phone"], // 地址 'address' => empty($order['address']) ? '' : $order['address']["region"]["province"].$order['address']["region"]["city"].$order['address']["region"]["region"].$order['address']["detail"] ]; //发送公众号消息 if ($settings['mp_status'] == 1 && $order['user']['mpopen_id'] != '') { MpMessageService::send($data, $settings['mp_template'], $order['user']['mpopen_id'], $order['app_id']); } //发送小程序订阅消息 if ($settings['wx_status'] == 1 && $order['user']['open_id'] != '') { WxMessageService::send($data, $settings['wx_template'], $order['user']['open_id'], $order['app_id']); } //发送短信消息 if ($settings['sms_status'] == 1 && $order['user']['mobile'] != '') { SmsMessageService::send($data, $settings['sms_template'], $order['user']['mobile'], $order['app_id']); } // 商家短信通知 $this->newOrder($order, $data, $orderType); if ($order['delivery_type']['value'] == 40) { //如果是门店配送 by lyzflash $this->payment_store($order, $data, $orderType); } else { // 供应商消息通知 by lyzflash $this->payment_supplier($order, $data, $orderType); } } /** * 订单支付成功后通知供应商 by lyzflash */ private function payment_supplier($order, $data, $orderType = OrderTypeEnum::MASTER) { $message = MessageModel::detailByEname('supplier_order_pay'); $settings = MessageSettingsModel::detailByMessageId($message['message_id'],$order['app_id']); if (!$settings) { return; } // 获取供应商通知人 $vars = SettingModel::getSupplierItem('message', $order['shop_supplier_id']); if (empty($vars) || empty($vars['order__user_ids'])) { return; } //发送公众号消息 if ($settings['mp_status'] == 1 ) { foreach ($vars['order__user_ids'] as $user_id) { // 获取用户信息 $user = UserModel::detail($user_id); if(!empty($user['mpopen_id'])){ MpMessageService::send($data, $settings['mp_template'], $user['mpopen_id'], $order['app_id']); } } } } /** * 订单支付成功后通知门店(配送点)by lyzflash */ private function payment_store($order, $data, $orderType = OrderTypeEnum::MASTER) { $message = MessageModel::detailByEname('delivery_new_order'); $settings = MessageSettingsModel::detailByMessageId($message['message_id'], $order['app_id']); if (!$settings) { return; } // 获取门店通知人(管理员) $ClerkGly =ClerkModel::detail(['store_id'=>$order['delivery_store'],'type'=>20]); if (empty($ClerkGly)) { return; } $data['type'] = DeliveryTypeEnum::data()[$order['delivery_type']['value']]['name']; //发送小程序订阅消息 if ($settings['wx_status'] == 1 && $ClerkGly['user']['open_id'] != '') { WxMessageService::send($data, $settings['wx_template'], $ClerkGly['user']['open_id'], $order['app_id']); } // 获取用户信息 $user = UserModel::detail($ClerkGly['user']['user_id']); $whereGz=[ "nickName"=>$user["nickName"], "reg_source"=>'mp', "app_id"=>$order['app_id'], ]; $user_gz = UserModel::detail($whereGz);//获取公众号的同名的用户 if (empty($user_gz)) { return; } //发送公众号消息 by yj if($settings['mp_status'] == 1 && $user_gz['mpopen_id'] != ''){ MpMessageService::send($data, $settings['mp_template'], $user_gz['mpopen_id'], $order['app_id']); } } /** * 订单支付成功后通知配送员 by lyzflash */ public function payment_deliveryclerk($order, $clerk_id) { $message = MessageModel::detailByEname('delivery_new_order'); $settings = MessageSettingsModel::detailByMessageId($message['message_id'], $order['app_id']); if (!$settings) { return; } // 获取门店通知人 $ClerkGly =ClerkModel::detail(['clerk_id'=>$clerk_id]); if (empty($ClerkGly)) { return; } /*$data = [ // 订单编号 'order_no' => $order['order_no'], // 商品名称 'product_name' => $this->formatProductName($order['product']), // 订单类型(配送方式) 'type' => DeliveryTypeEnum::data()[$order['delivery_type']['value']]['name'], ];*/ $data = [ // 订单编号 'order_no' => $order['order_no'], // 商品名称 'product_name' => $this->formatProductName($order['product']), // 订单金额 'pay_price' => $order['pay_price'], // 订单类型(配送方式) 'type' => DeliveryTypeEnum::data()[$order['delivery_type']['value']]['name'], // 支付方式 'pay_type' => OrderPayTypeEnum::data()[$order['pay_type']['value']]['name'], // 支付时间 'pay_time' => date('Y-m-d H:i:s', $order['pay_time']), // 收货人 'name' => empty($order['address']) ? '' : $order['address']["name"], // 联系电话 'phone' => empty($order['address']) ? '' : $order['address']["phone"], // 地址 'address' => empty($order['address']) ? '' : $order['address']["region"]["province"].$order['address']["region"]["city"].$order['address']["region"]["region"].$order['address']["detail"] ]; //发送小程序订阅消息 if ($settings['wx_status'] == 1 && $ClerkGly['user']['open_id'] != '') { WxMessageService::send($data, $settings['wx_template'], $ClerkGly['user']['open_id'], $order['app_id']); } // 获取用户信息 $user = UserModel::detail($ClerkGly['user']['user_id']); $whereGz=[ "nickName"=>$user["nickName"], "reg_source"=>'mp', "app_id"=>$order['app_id'], ]; $user_gz = UserModel::detail($whereGz);//获取公众号的同名的用户 if (empty($user_gz)) { return; } //发送公众号消息 by yj if($settings['mp_status'] == 1 && $user_gz['mpopen_id'] != ''){ MpMessageService::send($data, $settings['mp_template'], $user_gz['mpopen_id'], $order['app_id']); } } /** * 商家短信通知 */ private function newOrder($order, $data, $orderType = OrderTypeEnum::MASTER) { $message = MessageModel::detailByEname('order_pay_store'); $settings = MessageSettingsModel::detailByMessageId($message['message_id'], $order['app_id']); if (!$settings || $settings['sms_status'] == 0) { return; } // 商家短信通知 $supplier_user = SupplierModel::detail($order['shop_supplier_id']); if (empty($supplier_user['link_phone'])) { return; } SmsMessageService::send($data, $settings['sms_template'], $supplier_user['link_phone'], $order['app_id']); } /** * 后台发货通知 */ public function delivery($order, $orderType = OrderTypeEnum::MASTER) { $message = MessageModel::detailByEname('order_delivery_user'); $settings = MessageSettingsModel::detailByMessageId($message['message_id'], $order['app_id']); if (!$settings) { return; } $data = [ // 订单编号 'order_no' => $order['order_no'], // 商品信息 'product_name' => $this->formatProductName($order['product']), //收货人 'name' => $order['address']['name'], // 收货地址 'address' => implode('', $order['address']['region']) . $order['address']['detail'], // 物流公司 'express_name' => $order['express']['express_name'], // 物流单号 'express_no' => $order['express_no'], // 发货时间 'express_time' => date('Y-m-d H:i:s', $order['delivery_time']), ]; //发送公众号消息 if ($settings['mp_status'] == 1 && $order['user']['mpopen_id'] != '') { MpMessageService::send($data, $settings['mp_template'], $order['user']['mpopen_id'], $order['app_id']); } //发送小程序订阅消息 if ($settings['wx_status'] == 1 && $order['user']['open_id'] != '') { WxMessageService::send($data, $settings['wx_template'], $order['user']['open_id'], $order['app_id']); } //发送短信消息 if ($settings['sms_status'] == 1 && $order['user']['mobile'] != '') { SmsMessageService::send($data, $settings['sms_template'], $order['user']['mobile'], $order['app_id']); } } /** * 后台售后单状态通知 * $sence场景,audit 审核 receipt 确认退款 */ public function refund($refund, $order_no, $sence = 'audit') { $message = MessageModel::detailByEname('order_refund_user'); $settings = MessageSettingsModel::detailByMessageId($message['message_id'], $refund['app_id']); if (!$settings) { return; } $data = [ // 订单编号 'order_no' => $order_no, // 商品名称 'product_name' => $refund['order_product']['product_name'], // 售后类型 'type' => $refund['type']['text'], // 处理结果 'status' => $sence == 'audit'? $refund['is_agree']['text'] : $refund['status']['text'], // 处理时间 'process_time' => date('Y-m-d H:i:s', time()), // 拒绝原因 'refuse_desc' => $refund['refuse_desc']?: '无', ]; //发送公众号消息 if ($settings['mp_status'] == 1 && $refund['user']['mpopen_id'] != '') { MpMessageService::send($data, $settings['mp_template'], $refund['user']['mpopen_id'], $refund['app_id']); } //发送小程序订阅消息 if ($settings['wx_status'] == 1 && $refund['user']['open_id'] != '') { WxMessageService::send($data, $settings['wx_template'], $refund['user']['open_id'], $refund['app_id']); } //发送短信消息 if ($settings['sms_status'] == 1 && $refund['user']['mobile'] != '') { SmsMessageService::send($data, $settings['sms_template'], $refund['user']['mobile'], $refund['app_id']); } } /** * 分销商入驻审核通知 */ public function agent($agent) { $message = MessageModel::detailByEname('agent_apply_user'); $settings = MessageSettingsModel::detailByMessageId($message['message_id'],$agent["app_id"]); if (!$settings) { return; } // 发送模板消息 $reason = ''; if ($agent['apply_status'] == 30) { $reason = "驳回原因:" . $agent['reject_reason']; } $data = [ // 申请时间 'apply_time' => $agent['apply_time'], //审核状态 'apply_status' => $agent['apply_status']['text'], // 审核时间 'audit_time' => $agent['audit_time'], // 拒绝原因 'reason' => $reason?:'无', ]; // 获取用户信息 $user = UserModel::detail($agent['user_id']); //发送公众号消息 if ($settings['mp_status'] == 1 && $user['mpopen_id'] != '') { MpMessageService::send($data, $settings['mp_template'], $user['mpopen_id'], $user['app_id']); } //发送小程序订阅消息 if ($settings['wx_status'] == 1 && $user['open_id'] != '') { WxMessageService::send($data, $settings['wx_template'], $user['open_id'], $user['app_id']); } //发送短信消息 if ($settings['sms_status'] == 1 && $user['mobile'] != '') { SmsMessageService::send($data, $settings['sms_template'], $user['mobile'], $user['app_id']); } } /** * 分销商提现审核通知 */ public function cash($cash) { $message = MessageModel::detailByEname('agent_cash_user'); $settings = MessageSettingsModel::detailByMessageId($message['message_id'],$cash["app_id"]); if (!$settings) { return; } // 发送模板消息 $reason = '无'; if ($cash['apply_status'] == 30) { $reason = $cash['reject_reason']; } $data = [ // 提现时间 'create_time' => $cash['create_time'], //提现方式 'pay_type' => $cash['pay_type']['text'], // 提现金额 'money' => $cash['money'], // 提现状态 'apply_status' => $cash['apply_status']['text'], // 拒绝原因 'reason' => $reason, ]; // 获取用户信息 $user = UserModel::detail($cash['user_id']); //发送公众号消息 if ($settings['mp_status'] == 1 && $user['mpopen_id'] != '') { MpMessageService::send($data, $settings['mp_template'], $user['mpopen_id'], $user['app_id']); } //发送小程序订阅消息 if ($settings['wx_status'] == 1 && $user['open_id'] != '') { WxMessageService::send($data, $settings['wx_template'], $user['open_id'], $user['app_id']); } //发送短信消息 if ($settings['sms_status'] == 1 && $user['mobile'] != '') { SmsMessageService::send($data, $settings['sms_template'], $user['mobile'], $user['app_id']); } } /** * 队长入驻审核通知 */ public function team($team) { $message = MessageModel::detailByEname('team_apply_user'); if(empty($message)){ return; } $settings = MessageSettingsModel::detailByMessageId($message['message_id'],$team["app_id"]); if (!$settings) { return; } // 发送模板消息 $reason = ''; if ($team['apply_status'] == 30) { $reason = "驳回原因:" . $team['reject_reason']; } $data = [ // 申请时间 'apply_time' => $team['apply_time'], //审核状态 'apply_status' => $team['apply_status']['text'], // 审核时间 'audit_time' => $team['audit_time'], // 拒绝原因 'reason' => $reason?:'无', ]; // 获取用户信息 $user = UserModel::detail($team['user_id']); //发送公众号消息 if ($settings['mp_status'] == 1 && $user['mpopen_id'] != '') { MpMessageService::send($data, $settings['mp_template'], $user['mpopen_id'], $user['app_id']); } //发送小程序订阅消息 if ($settings['wx_status'] == 1 && $user['open_id'] != '') { WxMessageService::send($data, $settings['wx_template'], $user['open_id'], $user['app_id']); } //发送短信消息 if ($settings['sms_status'] == 1 && $user['mobile'] != '') { SmsMessageService::send($data, $settings['sms_template'], $user['mobile'], $user['app_id']); } } /** * 供应商消息通知 */ public function supplier($order, $orderType = OrderTypeEnum::MASTER) { $message = MessageModel::detailByEname('supplier_new_message'); $settings = MessageSettingsModel::detailByMessageId($message['message_id'],$order["app_id"]); if (!$settings) { return; } $supplier_user = SupplierModel::detail($order['shop_supplier_id']); if (empty($supplier_user)) { return; } // 发送模板消息 $data = [ // 发送时间 'create_time' => date('Y-m-d'), //发送人 'send_user' => '平台', // 消息内容 'message' => '您有一个新的订单,请注意查看', ]; // 获取用户信息,接收消息的用户 $user = UserModel::detail($supplier_user['user_id']); //发送公众号消息 if ($settings['mp_status'] == 1 && $user['mpopen_id'] != '') { MpMessageService::send($data, $settings['mp_template'], $user['mpopen_id'], $user['app_id']); } //发送小程序订阅消息 if ($settings['wx_status'] == 1 && $user['open_id'] != '') { WxMessageService::send($data, $settings['wx_template'], $user['open_id'], $user['app_id']); } //发送短信消息 if ($settings['sms_status'] == 1 && $supplier_user['link_phone'] != '') { SmsMessageService::send($data, $settings['sms_template'], $supplier_user['link_phone'], $user['app_id']); } } /** * 供应商消息通知 */ public function supplierMsg($msg_data) { $message = MessageModel::detailByEname('supplier_new_message'); $settings = MessageSettingsModel::detailByMessageId($message['message_id'],$msg_data['app_id']); if (!$settings) { return; } // 发送模板消息 $data = [ // 发送时间 'create_time' => $msg_data['create_time'], //发送人 'send_user' => $msg_data['send_user'], // 消息内容 'message' => $msg_data['message'], ]; // 获取用户信息,接收消息的用户 $user = UserModel::detail($msg_data['user_id']); //发送公众号消息 if ($settings['mp_status'] == 1 && $user['mpopen_id'] != '') { MpMessageService::send($data, $settings['mp_template'], $user['mpopen_id'], $user['app_id']); } //发送小程序订阅消息 if ($settings['wx_status'] == 1 && $user['open_id'] != '') { WxMessageService::send($data, $settings['wx_template'], $user['open_id'], $user['app_id']); } //发送短信消息 if ($settings['sms_status'] == 1 && $user['mobile'] != '') { SmsMessageService::send($data, $settings['sms_template'], $user['mobile'], $user['app_id']); } } /** * 股东入驻审核通知 */ public function shareholder($shareholder) { $message = MessageModel::detailByEname('shareholder_apply_user'); if(!$message){ return; } $settings = MessageSettingsModel::detailByMessageId($message['message_id'],$shareholder["app_id"]); if (!$settings) { return; } // 发送模板消息 $reason = ''; if ($shareholder['apply_status'] == 30) { $reason = "驳回原因:" . $shareholder['reject_reason']; } $data = [ // 申请时间 'apply_time' => $shareholder['apply_time'], //审核状态 'apply_status' => $shareholder['apply_status']['text'], // 审核时间 'audit_time' => $shareholder['audit_time'], // 拒绝原因 'reason' => $reason?:'无', ]; // 获取用户信息 $user = UserModel::detail($shareholder['user_id']); //发送公众号消息 if ($settings['mp_status'] == 1 && $user['mpopen_id'] != '') { MpMessageService::send($data, $settings['mp_template'], $user['mpopen_id'], $user['app_id']); } //发送小程序订阅消息 if ($settings['wx_status'] == 1 && $user['open_id'] != '') { WxMessageService::send($data, $settings['wx_template'], $user['open_id'], $user['app_id']); } //发送短信消息 if ($settings['sms_status'] == 1 && $user['mobile'] != '') { SmsMessageService::send($data, $settings['sms_template'], $user['mobile'], $user['app_id']); } } /** * 股东提现审核通知 */ public function shareholderCash($cash) { $message = MessageModel::detailByEname('shareholder_cash_user'); if(!$message){ return; } $settings = MessageSettingsModel::detailByMessageId($message['message_id'],$cash["app_id"]); if (!$settings) { return; } // 发送模板消息 $reason = '无'; if ($cash['apply_status'] == 30) { $reason = $cash['reject_reason']; } $data = [ // 提现时间 'create_time' => $cash['create_time'], //提现方式 'pay_type' => $cash['pay_type']['text'], // 提现金额 'money' => $cash['money'], // 提现状态 'apply_status' => $cash['apply_status']['text'], // 拒绝原因 'reason' => $reason, ]; // 获取用户信息 $user = UserModel::detail($cash['user_id']); //发送公众号消息 if ($settings['mp_status'] == 1 && $user['mpopen_id'] != '') { MpMessageService::send($data, $settings['mp_template'], $user['mpopen_id'], $user['app_id']); } //发送小程序订阅消息 if ($settings['wx_status'] == 1 && $user['open_id'] != '') { WxMessageService::send($data, $settings['wx_template'], $user['open_id'], $user['app_id']); } //发送短信消息 if ($settings['sms_status'] == 1 && $user['mobile'] != '') { SmsMessageService::send($data, $settings['sms_template'], $user['mobile'], $user['app_id']); } } /** * 区域代理审核通知 */ public function region($region) { $message = MessageModel::detailByEname('region_apply_user'); if(!$message){ return; } $settings = MessageSettingsModel::detailByMessageId($message['message_id'],$region["app_id"]); if (!$settings) { return; } // 发送模板消息 $reason = ''; if ($region['apply_status'] == 30) { $reason = "驳回原因:" . $region['reject_reason']; } $data = [ // 申请时间 'apply_time' => $region['apply_time'], //审核状态 'apply_status' => $region['apply_status']['text'], // 审核时间 'audit_time' => $region['audit_time'], // 拒绝原因 'reason' => $reason?:'无', ]; // 获取用户信息 $user = UserModel::detail($region['user_id']); //发送公众号消息 if ($settings['mp_status'] == 1 && $user['mpopen_id'] != '') { MpMessageService::send($data, $settings['mp_template'], $user['mpopen_id'], $user['app_id']); } //发送小程序订阅消息 if ($settings['wx_status'] == 1 && $user['open_id'] != '') { WxMessageService::send($data, $settings['wx_template'], $user['open_id'], $user['app_id']); } //发送短信消息 if ($settings['sms_status'] == 1 && $user['mobile'] != '') { SmsMessageService::send($data, $settings['sms_template'], $user['mobile'], $user['app_id']); } } /** * 区域代理提现审核通知 */ public function regionCash($cash) { $message = MessageModel::detailByEname('region_cash_user'); if(!$message){ return; } $settings = MessageSettingsModel::detailByMessageId($message['message_id'],$cash["app_id"]); if (!$settings) { return; } // 发送模板消息 $reason = '无'; if ($cash['apply_status'] == 30) { $reason = $cash['reject_reason']; } $data = [ // 提现时间 'create_time' => $cash['create_time'], //提现方式 'pay_type' => $cash['pay_type']['text'], // 提现金额 'money' => $cash['money'], // 提现状态 'apply_status' => $cash['apply_status']['text'], // 拒绝原因 'reason' => $reason, ]; // 获取用户信息 $user = UserModel::detail($cash['user_id']); //发送公众号消息 if ($settings['mp_status'] == 1 && $user['mpopen_id'] != '') { MpMessageService::send($data, $settings['mp_template'], $user['mpopen_id'], $user['app_id']); } //发送小程序订阅消息 if ($settings['wx_status'] == 1 && $user['open_id'] != '') { WxMessageService::send($data, $settings['wx_template'], $user['open_id'], $user['app_id']); } //发送短信消息 if ($settings['sms_status'] == 1 && $user['mobile'] != '') { SmsMessageService::send($data, $settings['sms_template'], $user['mobile'], $user['app_id']); } } /** * 格式化商品名称 */ private function formatProductName($productData) { $str = ''; foreach ($productData as $product) { $str .= $product['product_name'] . ' '; } return $str; } }