business_model, [1, 2])) {//商盟非独立运营店铺也用联盟端配置 $store_id = 0; } } if ($store_id <= 0) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } else { $setting = Notice::findOne(['store_id' => $store_id]); if (!$setting) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } } $goods_name = $goods_name ?: '订单提交'; if ($setting && $setting->order_submit) { $tpl = Json::decode($setting->order_submit); if ($tpl && $tpl['sms'] && $tpl['sms']['is_open']) { NoticeAction::sendSms($mobile, $tpl['sms']['template_id'], $tpl['sms']['template_var'], $order_no, $store_id); } if ($tpl && $tpl['miapp'] && $tpl['miapp']['is_open']) { NoticeAction::sendMine($user_id, $tpl['miapp']['template_id'], $page, [ $tpl['miapp']['kid_list'][0] => ['value' => $order_no], $tpl['miapp']['kid_list'][1] => ['value' => $pay_price], $tpl['miapp']['kid_list'][2] => ['value' => mb_substr($goods_name,0,18,'utf-8')], $tpl['miapp']['kid_list'][3] => ['value' => date('Y-m-d H:i:s', time())], ]); } if ($tpl && $tpl['wxaapi'] && $tpl['wxaapi']['is_open']) { NoticeAction::sendMine2($user_id, $tpl['wxaapi']['template_id'], $page, [ $tpl['wxaapi']['kid_list'][0] => ['value' => $order_no], $tpl['wxaapi']['kid_list'][1] => ['value' => $pay_price], $tpl['wxaapi']['kid_list'][2] => ['value' => mb_substr($goods_name,0,18,'utf-8')], $tpl['wxaapi']['kid_list'][3] => ['value' => date('Y-m-d H:i:s', time())], ]); } } else { return false; } } /** * @description: 订单支付通知 * @param integer $user_id * @param string $order_no * @param integer $pay_time * @param integer $pay_price * @param string $goods_name * @return {*} */ public static function OrderPay($user_id, $mobile, $order_no, $pay_price, $goods_name, $order_type = 0) { if ($order_type == 1) { $page = 'livestockAdoption/my_order/my_order'; }elseif ($order_type == 2) { $page = 'livestockAdoption/cost_list/list'; } else { $page = 'order/order/order'; } $self_mini = 1; $user = User::findOne($user_id); $store_id = $user->store_id; $store = Store::findOne($store_id); if ($store) { if (!in_array($store->business_model, [1, 2])) {//商盟非独立运营店铺也用联盟端配置 $store_id = 0; } } if ($store_id <= 0) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } else { $setting = Notice::findOne(['store_id' => $store_id]); if (!$setting) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } } $goods_name = $goods_name ?: '订单支付'; if ($setting && $setting->order_pay) { $tpl = Json::decode($setting->order_pay); if ($tpl && $tpl['sms'] && $tpl['sms']['is_open']) { NoticeAction::sendSms($mobile, $tpl['sms']['template_id'], $tpl['sms']['template_var'], $order_no, $store_id); } if ($tpl && $tpl['miapp'] && $tpl['miapp']['is_open']) { NoticeAction::sendMine($user_id, $tpl['miapp']['template_id'], $page, [ $tpl['miapp']['kid_list'][0] => ['value' => $order_no], $tpl['miapp']['kid_list'][1] => ['value' => $pay_price], $tpl['miapp']['kid_list'][2] => ['value' => date('Y-m-d H:i:s', time())], $tpl['miapp']['kid_list'][3] => ['value' => mb_substr($goods_name,0,18,'utf-8')], ]); } if ($tpl && $tpl['wxaapi'] && $tpl['wxaapi']['is_open']) { NoticeAction::sendMine2($user_id, $tpl['wxaapi']['template_id'], $page, [ $tpl['wxaapi']['kid_list'][0] => ['value' => $order_no], $tpl['wxaapi']['kid_list'][1] => ['value' => $pay_price], $tpl['wxaapi']['kid_list'][2] => ['value' => date('Y-m-d H:i:s', time())], $tpl['wxaapi']['kid_list'][3] => ['value' => mb_substr($goods_name,0,18,'utf-8')], ]); } } else { return false; } } /** * @description: 订单取消通知 * @param integer $user_id * @param string $order_no * @param integer $order_price * @param string $desc * @return {*} */ public static function OrderCancel($user_id, $mobile, $order_no, $pay_price, $goods_name, $order_type = 0) { if ($order_type == 1) { $page = 'livestockAdoption/my_order/my_order'; }elseif ($order_type == 2) { $page = 'livestockAdoption/cost_list/list'; } else { $page = 'order/order/order'; } $store_id = get_store_id(); $store = Store::findOne($store_id); if ($store) { if (!in_array($store->business_model, [1, 2])) {//商盟非独立运营店铺也用联盟端配置 $store_id = 0; } } if ($store_id <= 0) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } else { $setting = Notice::findOne(['store_id' => $store_id]); if (!$setting) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } } $goods_name = $goods_name ?: '订单取消通知'; if ($setting && $setting->order_cancel) { $tpl = Json::decode($setting->order_cancel); if ($tpl && $tpl['sms'] && $tpl['sms']['is_open']) { NoticeAction::sendSms($mobile, $tpl['sms']['template_id'], $tpl['sms']['template_var'], $order_no, $store_id); } if ($tpl && $tpl['miapp'] && $tpl['miapp']['is_open']) { NoticeAction::sendMine($user_id, $tpl['miapp']['template_id'], $page, [ $tpl['miapp']['kid_list'][0] => ['value' => $order_no], $tpl['miapp']['kid_list'][1] => ['value' => $pay_price], $tpl['miapp']['kid_list'][2] => ['value' => mb_substr($goods_name,0,18,'utf-8')], $tpl['miapp']['kid_list'][3] => ['value' => date('Y-m-d H:i:s', time())], ]); } if ($tpl && $tpl['wxaapi'] && $tpl['wxaapi']['is_open']) { NoticeAction::sendMine2($user_id, $tpl['wxaapi']['template_id'], $page, [ $tpl['wxaapi']['kid_list'][0] => ['value' => $order_no], $tpl['wxaapi']['kid_list'][1] => ['value' => $pay_price], $tpl['wxaapi']['kid_list'][2] => ['value' => mb_substr($goods_name,0,18,'utf-8')], $tpl['wxaapi']['kid_list'][3] => ['value' => date('Y-m-d H:i:s', time())], ]); } } else { return false; } } /** * @description: 订单退款通知 * @param integer $user_id * @param string $order_no * @param integer $price * @param string $goods_name * @return {*} */ public static function OrderRefund($user_id, $mobile, $order_no, $refund_price, $goods_name) { $store_id = get_store_id(); $store = Store::findOne($store_id); if ($store) { if (!in_array($store->business_model, [1, 2])) {//商盟非独立运营店铺也用联盟端配置 $store_id = 0; } } if ($store_id <= 0) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } else { $setting = Notice::findOne(['store_id' => $store_id]); if (!$setting) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } } $goods_name = $goods_name ?: '订单退款通知'; if ($setting && $setting->order_refund) { $tpl = Json::decode($setting->order_refund); if ($tpl && $tpl['sms'] && $tpl['sms']['is_open']) { NoticeAction::sendSms($mobile, $tpl['sms']['template_id'], $tpl['sms']['template_var'], $order_no, $store_id); } if ($tpl && $tpl['miapp'] && $tpl['miapp']['is_open']) { NoticeAction::sendMine($user_id, $tpl['miapp']['template_id'], 'pages/order/order', [ $tpl['miapp']['kid_list'][0] => ['value' => $order_no], $tpl['miapp']['kid_list'][1] => ['value' => $refund_price], $tpl['miapp']['kid_list'][2] => ['value' => mb_substr($goods_name,0,18,'utf-8')], $tpl['miapp']['kid_list'][3] => ['value' => '退款成功'], ]); } if ($tpl && $tpl['wxaapi'] && $tpl['wxaapi']['is_open']) { NoticeAction::sendMine2($user_id, $tpl['wxaapi']['template_id'], 'pages/order/order', [ $tpl['wxaapi']['kid_list'][0] => ['value' => $order_no], $tpl['wxaapi']['kid_list'][1] => ['value' => $refund_price], $tpl['wxaapi']['kid_list'][2] => ['value' => mb_substr($goods_name,0,18,'utf-8')], $tpl['wxaapi']['kid_list'][3] => ['value' => '退款成功'], ]); } } else { return false; } } /** * @description: 订单退款通知 * @param integer $user_id * @return {*} */ public static function OrderRefundCancel($mobile) { $store_id = get_store_id(); $store = Store::findOne($store_id); if ($store) { if (!in_array($store->business_model, [1, 2])) {//商盟非独立运营店铺也用联盟端配置 $store_id = 0; } } if ($store_id <= 0) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } else { $setting = Notice::findOne(['store_id' => $store_id]); if (!$setting) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } } if ($setting && $setting->order_refund_cancel) { $tpl = Json::decode($setting->order_refund_cancel); if ($tpl && $tpl['sms'] && $tpl['sms']['is_open']) { NoticeAction::sendSms($mobile, $tpl['sms']['template_id'], '' , '', $store_id); } // if ($tpl && $tpl['miapp'] && $tpl['miapp']['is_open']) { // NoticeAction::sendMine($user_id, $tpl['miapp']['template_id'], 'pages/order/order', [ // $tpl['miapp']['kid_list'][0] => ['value' => $order_no], // $tpl['miapp']['kid_list'][1] => ['value' => $refund_price], // $tpl['miapp']['kid_list'][2] => ['value' => mb_substr($goods_name,0,18,'utf-8')], // $tpl['miapp']['kid_list'][3] => ['value' => '退款成功'], // // ]); // } // if ($tpl && $tpl['wxaapi'] && $tpl['wxaapi']['is_open']) { // NoticeAction::sendMine2($user_id, $tpl['wxaapi']['template_id'], 'pages/order/order', [ // $tpl['wxaapi']['kid_list'][0] => ['value' => $order_no], // $tpl['wxaapi']['kid_list'][1] => ['value' => $refund_price], // $tpl['wxaapi']['kid_list'][2] => ['value' => mb_substr($goods_name,0,18,'utf-8')], // $tpl['wxaapi']['kid_list'][3] => ['value' => '退款成功'], // ]); // } } else { return false; } } /** * @description: 订单发货通知 * @param integer $user_id * @param string $order_no * @param string $express * @param string $express_no * @return {*} */ public static function OrderSend($user_id, $mobile, $order_no, $goods_name, $express, $express_no, $order_type = 0) { if ($order_type == 1) { $page = 'livestockAdoption/cost_list/list'; } else if ($order_type == Order::ORDER_TYPE_GIVING_GIFTS) { $page = 'givingGifts/myGift/myGift'; } else { $page = 'order/order/order'; } $express = $express ?: '-'; $express_no = $express_no ?: '-'; $store_id = get_store_id(); $store = Store::findOne($store_id); if ($store) { if (!in_array($store->business_model, [1, 2])) {//商盟非独立运营店铺也用联盟端配置 $store_id = 0; } } if ($store_id <= 0) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } else { $setting = Notice::findOne(['store_id' => $store_id]); if (!$setting) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } } $goods_name = $goods_name ?: '订单退款通知'; if ($setting && $setting->order_send) { $tpl = Json::decode($setting->order_send); if ($tpl && $tpl['sms'] && $tpl['sms']['is_open']) { NoticeAction::sendSms($mobile, $tpl['sms']['template_id'], $tpl['sms']['template_var'], $order_no, $store_id); } if ($tpl && $tpl['miapp'] && $tpl['miapp']['is_open']) { NoticeAction::sendMine($user_id, $tpl['miapp']['template_id'], $page, [ $tpl['miapp']['kid_list'][0] => ['value' => $order_no], $tpl['miapp']['kid_list'][1] => ['value' => mb_substr($goods_name,0,18,'utf-8')], $tpl['miapp']['kid_list'][2] => ['value' => $express], $tpl['miapp']['kid_list'][3] => ['value' => $express_no], ]); } if ($tpl && $tpl['wxaapi'] && $tpl['wxaapi']['is_open']) { NoticeAction::sendMine2($user_id, $tpl['wxaapi']['template_id'], $page, [ $tpl['miapp']['kid_list'][0] => ['value' => $order_no], $tpl['miapp']['kid_list'][1] => ['value' => mb_substr($goods_name,0,18,'utf-8')], $tpl['miapp']['kid_list'][2] => ['value' => $express], $tpl['miapp']['kid_list'][3] => ['value' => $express_no], ]); } } else { return false; } } /** * @description: 门店到货通知 * @param integer $user_id * @param string $order_no * @param string $shop_name * @return {*} */ public static function ShopArrive($user_id, $mobile, $order_no, $goods_name, $shop_name) { $store_id = get_store_id(); $store = Store::findOne($store_id); if ($store) { if (!in_array($store->business_model, [1, 2])) {//商盟非独立运营店铺也用联盟端配置 $store_id = 0; } } if ($store_id <= 0) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } else { $setting = Notice::findOne(['store_id' => $store_id]); if (!$setting) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } } $goods_name = $goods_name ?: '订单退款通知'; if ($setting && $setting->shop_arrive) { $tpl = Json::decode($setting->shop_arrive); if ($tpl && $tpl['sms'] && $tpl['sms']['is_open']) { NoticeAction::sendSms($mobile, $tpl['sms']['template_id'], $tpl['sms']['template_var'], $order_no, $store_id); } if ($tpl && $tpl['miapp'] && $tpl['miapp']['is_open']) { NoticeAction::sendMine($user_id, $tpl['miapp']['template_id'], 'pages/order/order', [ $tpl['miapp']['kid_list'][0] => ['value' => mb_substr($goods_name,0,18,'utf-8')], $tpl['miapp']['kid_list'][1] => ['value' => '您的商品已到自提点'], $tpl['miapp']['kid_list'][2] => ['value' => date('Y-m-d H:i:s', time())], $tpl['miapp']['kid_list'][3] => ['value' => mb_substr($shop_name,0,18,'utf-8')], ]); } if ($tpl && $tpl['wxaapi'] && $tpl['wxaapi']['is_open']) { NoticeAction::sendMine2($user_id, $tpl['wxaapi']['template_id'], 'pages/order/order', [ $tpl['miapp']['kid_list'][0] => ['value' => mb_substr($goods_name,0,18,'utf-8')], $tpl['miapp']['kid_list'][1] => ['value' => '您的商品已到自提点'], $tpl['miapp']['kid_list'][2] => ['value' => date('Y-m-d H:i:s', time())], $tpl['miapp']['kid_list'][3] => ['value' => mb_substr($shop_name,0,18,'utf-8')], ]); } } else { return false; } } /** * @description: 订单自提通知 * @param integer $user_id * @param string $order_no * @param string $shop_name * @return {*} */ public static function ShopOffline($user_id, $mobile, $order_no, $shop_id) { $shop = Shop::findOne($shop_id); if (empty($shop)) { return false; } $store_id = get_store_id(); $store = Store::findOne($store_id); if ($store) { if (!in_array($store->business_model, [1, 2])) {//商盟非独立运营店铺也用联盟端配置 $store_id = 0; } } if ($store_id <= 0) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } else { $setting = Notice::findOne(['store_id' => $store_id]); if (!$setting) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } } if ($setting && $setting->shop_offline) { $tpl = Json::decode($setting->shop_offline); if ($tpl && $tpl['sms'] && $tpl['sms']['is_open']) { NoticeAction::sendSms($mobile, $tpl['sms']['template_id'], $tpl['sms']['template_var'], $order_no); } if ($tpl && $tpl['miapp'] && $tpl['miapp']['is_open']) { NoticeAction::sendMine($user_id, $tpl['miapp']['template_id'], 'pages/order/order', [ $tpl['miapp']['kid_list'][0] => ['value' => mb_substr($shop->name,0,18,'utf-8')], $tpl['miapp']['kid_list'][1] => ['value' => mb_substr($shop->address,0,18,'utf-8')], $tpl['miapp']['kid_list'][2] => ['value' => $order_no], $tpl['miapp']['kid_list'][3] => ['value' => $shop->mobile], ]); } if ($tpl && $tpl['wxaapi'] && $tpl['wxaapi']['is_open']) { NoticeAction::sendMine2($user_id, $tpl['wxaapi']['template_id'], 'pages/order/order', [ $tpl['miapp']['kid_list'][0] => ['value' => mb_substr($shop->name,0,18,'utf-8')], $tpl['miapp']['kid_list'][1] => ['value' => mb_substr($shop->address,0,18,'utf-8')], $tpl['miapp']['kid_list'][2] => ['value' => $order_no], $tpl['miapp']['kid_list'][3] => ['value' => $shop->mobile], ]); } } else { return false; } } /** * @description: 账户变动通知 * @param integer $user_id * @param string $type * @param string $desc * @return {*} */ public static function UserChang($user_id, $mobile, $price, $desc = '充值') { $user = User::findOne($user_id); $store_id = $user->store_id; $store = Store::findOne($store_id); if ($store) { if (!in_array($store->business_model, [1, 2])) {//商盟非独立运营店铺也用联盟端配置 $store_id = 0; } } if ($store_id <= 0) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } else { $setting = Notice::findOne(['store_id' => $store_id]); if (!$setting) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } } if ($setting && $setting->user_chang) { $tpl = Json::decode($setting->user_chang); if ($tpl && $tpl['sms'] && $tpl['sms']['is_open']) { NoticeAction::sendSms($mobile, $tpl['sms']['template_id'], $tpl['sms']['template_var'], $price, $store_id); } if ($tpl && $tpl['miapp'] && $tpl['miapp']['is_open']) { NoticeAction::sendMine($user_id, $tpl['miapp']['template_id'], 'pages/order/order', [ $tpl['miapp']['kid_list'][0] => ['value' => $price], $tpl['miapp']['kid_list'][1] => ['value' => date('Y-m-d H:i:s', time())], $tpl['miapp']['kid_list'][2] => ['value' => mb_substr($desc,0,18,'utf-8')], $tpl['miapp']['kid_list'][3] => ['value' => $user->money], ]); } if ($tpl && $tpl['wxaapi'] && $tpl['wxaapi']['is_open']) { NoticeAction::sendMine2($user_id, $tpl['wxaapi']['template_id'], 'pages/order/order', [ $tpl['miapp']['kid_list'][0] => ['value' => $price], $tpl['miapp']['kid_list'][1] => ['value' => date('Y-m-d H:i:s', time())], $tpl['miapp']['kid_list'][2] => ['value' => mb_substr($desc,0,18,'utf-8')], $tpl['miapp']['kid_list'][3] => ['value' => $user->money], ]); } } else { return false; } } /** * @description: 提现成功 * @param {*} $user_id * @param {*} $mobile * @param {*} $price 提现金额 * @param {string} $type 打款方式 * @param {*} $service_price 手续费 * @return {*} */ public static function CashSuccess($user_id, $mobile, $price, string $type, $service_price) { $store_id = get_store_id(); $store = Store::findOne($store_id); if ($store) { if (!in_array($store->business_model, [1, 2])) {//商盟非独立运营店铺也用联盟端配置 $store_id = 0; } } if ($store_id <= 0) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } else { $setting = Notice::findOne(['store_id' => $store_id]); if (!$setting) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } } if ($setting && $setting->cash_success) { $tpl = Json::decode($setting->cash_success); if ($tpl && $tpl['sms'] && $tpl['sms']['is_open'] && $tpl['sms']['template_id'] && $tpl['sms']['template_var']) { NoticeAction::sendSms($mobile, $tpl['sms']['template_id'], $tpl['sms']['template_var'], $price, $store_id); } if ($tpl && $tpl['miapp'] && $tpl['miapp']['is_open'] && $tpl['miapp']['template_id']) { NoticeAction::sendMine($user_id, $tpl['miapp']['template_id'], '', [ $tpl['miapp']['kid_list'][0] => ['value' => $price], $tpl['miapp']['kid_list'][1] => ['value' => '已打款'], $tpl['miapp']['kid_list'][2] => ['value' => mb_substr($type,0,18,'utf-8')], $tpl['miapp']['kid_list'][3] => ['value' => $service_price], ]); } if ($tpl && $tpl['wxaapi'] && $tpl['wxaapi']['is_open'] && $tpl['wxaapi']['template_id']) { NoticeAction::sendMine2($user_id, $tpl['wxaapi']['template_id'], '', [ $tpl['miapp']['kid_list'][0] => ['value' => $price], $tpl['miapp']['kid_list'][1] => ['value' => '已打款'], $tpl['miapp']['kid_list'][2] => ['value' => mb_substr($type,0,18,'utf-8')], $tpl['miapp']['kid_list'][3] => ['value' => $service_price], ]); } } else { return false; } } /** * @description: 提现失败 * @param {*} $user_id * @param {*} $mobile * @param {*} $price 提现金额 * @param {string} $desc 失败原因 * @param {*} $type * @return {*} */ public static function CashFail($user_id, $mobile, $price, string $desc,$type, $store_id = null) { $store_id = $store_id ?? get_store_id(); $store = Store::findOne($store_id); if ($store) { if (!in_array($store->business_model, [1, 2])) {//商盟非独立运营店铺也用联盟端配置 $store_id = 0; } } if ($store_id <= 0) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } else { $setting = Notice::findOne(['store_id' => $store_id]); if (!$setting) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } } if ($setting && $setting->cash_fail) { $tpl = Json::decode($setting->cash_fail); if ($tpl && $tpl['sms'] && $tpl['sms']['is_open']) { NoticeAction::sendSms($mobile, $tpl['sms']['template_id'], $tpl['sms']['template_var'], $desc, $store_id); } if ($tpl && $tpl['miapp'] && $tpl['miapp']['is_open']) { NoticeAction::sendMine($user_id, $tpl['miapp']['template_id'], '', [ $tpl['miapp']['kid_list'][0] => ['value' => $price], $tpl['miapp']['kid_list'][1] => ['value' => mb_substr($desc,0,18,'utf-8')], $tpl['miapp']['kid_list'][2] => ['value' => mb_substr($type,0,18,'utf-8')], ]); } if ($tpl && $tpl['wxaapi'] && $tpl['wxaapi']['is_open']) { NoticeAction::sendMine2($user_id, $tpl['wxaapi']['template_id'], '', [ $tpl['miapp']['kid_list'][0] => ['value' => '提现失败'], $tpl['miapp']['kid_list'][1] => ['value' => $price], $tpl['miapp']['kid_list'][2] => ['value' => mb_substr($desc,0,18,'utf-8')], $tpl['miapp']['kid_list'][3] => ['value' => mb_substr($type,0,18,'utf-8')], ]); } } else { return false; } } /** * @description: 分销商审核 * @param {*} $user_id * @param {*} $mobile * @param {*} $status 状态 通过 、 不通过 * @param {*} $desc 备注信息 * @return {*} */ public static function ShareExamine($user_id, $mobile, string $status, string $desc = '') { $user = User::findOne($user_id); $store_id = $user->store_id; $store = Store::findOne($store_id); if ($store) { if (!in_array($store->business_model, [1, 2])) {//商盟非独立运营店铺也用联盟端配置 $store_id = 0; } } if ($store_id <= 0) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } else { $setting = Notice::findOne(['store_id' => $store_id]); if (!$setting) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } } $desc = $desc ?: $status; if ($setting && $setting->share_examine) { $tpl = Json::decode($setting->share_examine); if ($tpl && $tpl['sms'] && $tpl['sms']['is_open']) { NoticeAction::sendSms($mobile, $tpl['sms']['template_id'], $tpl['sms']['template_var'], $status, $store_id); } if ($tpl && $tpl['miapp'] && $tpl['miapp']['is_open']) { NoticeAction::sendMine($user_id, $tpl['miapp']['template_id'], '', [ $tpl['miapp']['kid_list'][0] => ['value' => $user->nickname], $tpl['miapp']['kid_list'][1] => ['value' => date('Y-m-d H:i:s', time())], $tpl['miapp']['kid_list'][2] => ['value' => mb_substr($status,0,18,'utf-8')], $tpl['miapp']['kid_list'][3] => ['value' => mb_substr($desc,0,18,'utf-8')], ]); } if ($tpl && $tpl['wxaapi'] && $tpl['wxaapi']['is_open']) { NoticeAction::sendMine2($user_id, $tpl['miapp']['template_id'], '', [ $tpl['miapp']['kid_list'][0] => ['value' => $user->nickname], $tpl['miapp']['kid_list'][1] => ['value' => date('Y-m-d H:i:s', time())], $tpl['miapp']['kid_list'][2] => ['value' => mb_substr($status,0,18,'utf-8')], $tpl['miapp']['kid_list'][3] => ['value' => mb_substr($desc,0,18,'utf-8')], ]); } } else { return false; } } /** * @description: 拼团成功 * @param {*} $user_id * @param {*} $mobile * @param {*} $order_no * @param {*} $goods_name * @return {*} */ public static function PtSuccess($user_id, $mobile, $order_no, $goods_name) { $store_id = get_store_id(); $store = Store::findOne($store_id); if ($store) { if (!in_array($store->business_model, [1, 2])) {//商盟非独立运营店铺也用联盟端配置 $store_id = 0; } } if ($store_id <= 0) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } else { $setting = Notice::findOne(['store_id' => $store_id]); if (!$setting) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } } if ($setting && $setting->pt_success) { $tpl = Json::decode($setting->pt_success); if ($tpl && $tpl['sms'] && $tpl['sms']['is_open']) { NoticeAction::sendSms($mobile, $tpl['sms']['template_id'], $tpl['sms']['template_var'], $order_no, $store_id); } if ($tpl && $tpl['miapp'] && $tpl['miapp']['is_open']) { NoticeAction::sendMine($user_id, $tpl['miapp']['template_id'], '', [ $tpl['miapp']['kid_list'][0] => ['value' => $order_no], $tpl['miapp']['kid_list'][1] => ['value' => mb_substr($goods_name,0,18,'utf-8')], $tpl['miapp']['kid_list'][2] => ['value' => date('Y-m-d H:i:s', time())], $tpl['miapp']['kid_list'][3] => ['value' => '恭喜拼团成功'], ]); } if ($tpl && $tpl['wxaapi'] && $tpl['wxaapi']['is_open']) { NoticeAction::sendMine2($user_id, $tpl['miapp']['template_id'], '', [ $tpl['miapp']['kid_list'][0] => ['value' => $order_no], $tpl['miapp']['kid_list'][1] => ['value' => mb_substr($goods_name,0,18,'utf-8')], $tpl['miapp']['kid_list'][2] => ['value' => date('Y-m-d H:i:s', time())], $tpl['miapp']['kid_list'][3] => ['value' => '恭喜拼团成功'], ]); } } else { return false; } } /** * @description: 拼团失败通知 * @param int $user_id * @param string $order_no * @param string $goods_name * @return {*} */ public static function PtFail($user_id, $mobile, $order_no, $pay_price, $goods_name, $desc = '超时未成团') { $store_id = get_store_id(); $store = Store::findOne($store_id); if ($store) { if (!in_array($store->business_model, [1, 2])) {//商盟非独立运营店铺也用联盟端配置 $store_id = 0; } } if ($store_id <= 0) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } else { $setting = Notice::findOne(['store_id' => $store_id]); if (!$setting) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } } if ($setting && $setting->pt_fail) { $tpl = Json::decode($setting->pt_fail); if ($tpl && $tpl['sms'] && $tpl['sms']['is_open']) { NoticeAction::sendSms($mobile, $tpl['sms']['template_id'], $tpl['sms']['template_var'], $order_no, $store_id); } if ($tpl && $tpl['miapp'] && $tpl['miapp']['is_open']) { NoticeAction::sendMine($user_id, $tpl['miapp']['template_id'], '', [ $tpl['miapp']['kid_list'][0] => ['value' => $order_no], $tpl['miapp']['kid_list'][1] => ['value' => $pay_price], $tpl['miapp']['kid_list'][2] => ['value' => mb_substr($goods_name,0,18,'utf-8')], $tpl['miapp']['kid_list'][3] => ['value' => $desc], ]); } if ($tpl && $tpl['wxaapi'] && $tpl['wxaapi']['is_open']) { NoticeAction::sendMine2($user_id, $tpl['miapp']['template_id'], '', [ $tpl['miapp']['kid_list'][0] => ['value' => $order_no], $tpl['miapp']['kid_list'][1] => ['value' => $pay_price], $tpl['miapp']['kid_list'][2] => ['value' => mb_substr($goods_name,0,18,'utf-8')], $tpl['miapp']['kid_list'][3] => ['value' => $desc], ]); } } else { return false; } } /** * @description: 验证码 * @param string $mobile * @param int $code * @return array */ public static function VerifyCode($mobile, $code, $is_platform = false) { if ($is_platform) { $store_id = -1; } else { $store_id = get_store_id(); } $store_id = -1; $self_mini = 1; if ($store_id > 0) { $self_mini = Option::get('self_mini', $store_id, 'store', 0)['value']; } if (\Yii::$app->prod_is_dandianpu() && !$self_mini) { $setting = Notice::findOne(['store_id' => 0]); if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); } } else { $store = Store::findOne($store_id); if ($store->business_model != 1) {//商盟非独立运营店铺也用联盟端配置 $store_id = 0; } if ($store_id <= 0) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } else { $setting = Notice::findOne(['store_id' => $store_id]); } } if ($setting && $setting->register) { $tpl = Json::decode($setting->register); if ($tpl && $tpl['sms'] && $tpl['sms']['is_open']) { $res = NoticeAction::sendSms($mobile, $tpl['sms']['template_id'], $tpl['sms']['template_var'], $code, $store_id); if ($res['code'] == 0) { return ['code' => 0, 'msg' => true]; } else { return $res; } } } else { return [ 'code' => 1, 'msg' => '请检查短信验证码相关配置' ]; } } /** * @description: 用户下单通知 * @param int $md_id * @return {*} */ public static function PlaceOrder($order_no, $md_id = 0, $store_id = 0, $order = '') { $store = Store::findOne($store_id); if ($store) { if (!in_array($store->business_model, [1, 2])) {//商盟非独立运营店铺也用联盟端配置 $store_id = 0; } } if ($store_id <= 0) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } else { $setting = Notice::findOne(['store_id' => $store_id]); if (!$setting) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } } if ($setting && $setting->place_order) { $tpl = Json::decode($setting->place_order); if ($tpl && $tpl['sms'] && $tpl['sms']['is_open']) { try { if ($md_id == 0) { $mobile = explode(',', $tpl['sms']['receive_mobile']); } else { $md = Md::findOne($md_id); $mobile = [ $md->mobile ]; } foreach($mobile as $val) { NoticeAction::sendSms($val, $tpl['sms']['template_id'], $tpl['sms']['template_var'], $order_no, $store_id); } } catch (\Throwable $e) {} } if ($tpl && $tpl['miapp'] && $tpl['miapp']['is_open']) { try { NoticeAction::sendMine($tpl['miapp']['receive_userid'], $tpl['miapp']['template_id'], '', [ $tpl['miapp']['kid_list'][0] => ['value' => $order_no], $tpl['miapp']['kid_list'][1] => ['value' => date('Y-m-d H:i:s')], ]); } catch (\Throwable $e) {} } if ($tpl && $tpl['wxaapi'] && $tpl['wxaapi']['is_open']) { try { $user_name = ''; $user = User::findOne($order['user_id']); if($user){ $saas = \app\models\SaasUser::findOne(['mobile' => $user->binding]); $saas && $user_name = $saas->name; } $order_ext = \app\models\WorkerOrderExt::findOne(['order_id' => $order['id']]); if($order_ext && $order_ext['worker_id']){ $worker = Worker::findOne($order_ext['worker_id']); NoticeAction::sendMine2($worker['user_id'], $tpl['wxaapi']['template_id'], 'service-home/index/index', [ $tpl['wxaapi']['kid_list'][0] => ['value' => $order_no], $tpl['wxaapi']['kid_list'][1] => ['value' => $order['pay_price']], $tpl['wxaapi']['kid_list'][2] => ['value' => $user_name], $tpl['wxaapi']['kid_list'][3] => ['value' => date('Y-m-d H:i:s')], ]); } NoticeAction::sendMine2($tpl['wxaapi']['receive_userid'], $tpl['wxaapi']['template_id'], '', [ $tpl['wxaapi']['kid_list'][0] => ['value' => $order_no], $tpl['wxaapi']['kid_list'][1] => ['value' => $order['pay_price']], $tpl['wxaapi']['kid_list'][2] => ['value' => $user_name], $tpl['wxaapi']['kid_list'][3] => ['value' => date('Y-m-d H:i:s')], ]); foreach($tpl['wxaapi']['receive_openids'] as $openid){ NoticeAction::sendMine2($openid, $tpl['wxaapi']['template_id'], '', [ $tpl['wxaapi']['kid_list'][0] => ['value' => $order_no], $tpl['wxaapi']['kid_list'][1] => ['value' => $order['pay_price']], $tpl['wxaapi']['kid_list'][2] => ['value' => $user_name], $tpl['wxaapi']['kid_list'][3] => ['value' => date('Y-m-d H:i:s')], ]); } } catch (\Throwable $e) {} } // 客服消息通知 if ($tpl && $tpl['kefu'] && $tpl['kefu']['is_open']) { try { $store = Store::findOne($store_id); if ($store && $store->kefu_id) { $user_name = ''; $user = User::findOne($order['user_id']); if($user){ $saas = \app\models\SaasUser::findOne(['mobile' => $user->binding]); $saas && $user_name = $saas->name; } \Yii::$app->sendKefuMsg($store->kefu_id, ['title' => '您有新的订单消息, 请及时处理!', 'list' => [ [ 'name' => '订单号', 'value' => $order_no, ], [ 'name' => '订单金额', 'value' => '¥' . $order['pay_price'], ], [ 'name' => '下单用户', 'value' => $user_name, ], [ 'name' => '下单时间', 'value' => date('Y-m-d H:i:s', $order['created_at']), ] ]]); } } catch (\Throwable $e) {} } } } /** * @description: 入驻商订单通知 * @return {*} */ public static function MchOrder($order_no, $store_id = 0, $order = '') { $store = Store::findOne($store_id); if ($store) { if (!in_array($store->business_model, [1, 2])) {//商盟非独立运营店铺也用联盟端配置 $store_id = 0; } } if ($store_id <= 0) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } else { $setting = Notice::findOne(['store_id' => $store_id]); if (!$setting) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } } $mch_id = $order['mch_id'] ?? 0; if(!$mch_id){ return; } $mchConf = (new \app\modules\admin\models\MchForm())->mchSetting(); $mch_order_notice = $mchConf['mch_order_notice']; $mch = Mch::findOne($mch_id); if ($setting && $setting->place_order) { $tpl = Json::decode($setting->place_order); if ($tpl && $tpl['sms'] && $tpl['sms']['is_open']) { try { if($mch_id && $mch_order_notice){ $mobile = [ $mch->tel ]; foreach($mobile as $val) { NoticeAction::sendSms($val, $tpl['sms']['template_id'], $tpl['sms']['template_var'], $order_no, $store_id); } } } catch (\Throwable $e) {} } } } /** * @description: 订单退款通知 * @param int $mch_id * @return {*} */ public static function MchCancel($order_no, $mch_id = 0) { $store_id = get_store_id(); $store = Store::findOne($store_id); if ($store) { if (!in_array($store->business_model, [1, 2])) {//商盟非独立运营店铺也用联盟端配置 $store_id = 0; } } if ($store_id <= 0) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } else { $setting = Notice::findOne(['store_id' => $store_id]); if (!$setting) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } } if ($setting && $setting->mch_cancel) { $tpl = Json::decode($setting->mch_cancel); if ($tpl && $tpl['sms'] && $tpl['sms']['is_open']) { try { if ($mch_id == 0) { $mobile = explode(',', $tpl['sms']['receive_mobile']); } else { $mch = Mch::findOne($mch_id); $mobile = [ $mch->tel ]; } foreach($mobile as $val) { NoticeAction::sendSms($val, $tpl['sms']['template_id'], $tpl['sms']['template_var'], '', $store_id); } } catch (\Throwable $e) {} } if ($tpl && $tpl['kefu'] && $tpl['kefu']['is_open']) { try { $order = Order::findOne(['order_no' => $order_no]); if ($order) { $store = Store::findOne($order->store_id); if ($store && $store->kefu_id) { \Yii::$app->sendKefuMsg($store->kefu_id, ['title' => '您有新的退款消息, 请及时处理!', 'list' => [ [ 'name' => '订单号', 'value' => $order_no, ] ]]); } } } catch (\Throwable $e) {} } } else { return false; } } /** * @description: 入驻商审核通知 * @param {*} $user_id * @param {*} $status 状态 0 未通过 1 已通过 * @param {*} $desc 备注 * @return {*} */ public static function MchExamine($user_id, $status, $desc) { $mch = Mch::findOne(['user_id' => $user_id]); $mobile = $mch->tel; $status = $status == 0 ? '未通过' : '已通过'; $store_id = $mch->store_id; $store = Store::findOne($store_id); if ($store) { if (!in_array($store->business_model, [1, 2])) {//商盟非独立运营店铺也用联盟端配置 $store_id = 0; } } if ($store_id <= 0) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } else { $setting = Notice::findOne(['store_id' => $store_id]); if (!$setting) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } } if ($setting && $setting->mch_examine) { $tpl = Json::decode($setting->mch_examine); if ($tpl && $tpl['sms'] && $tpl['sms']['is_open']) { NoticeAction::sendSms($mobile, $tpl['sms']['template_id'], $tpl['sms']['template_var'], $desc, $store_id); } if ($tpl && $tpl['miapp'] && $tpl['miapp']['is_open']) { NoticeAction::sendMine($user_id, $tpl['miapp']['template_id'], '', [ $tpl['miapp']['kid_list'][0] => ['value' => mb_substr($mch->name,0,18,'utf-8')], $tpl['miapp']['kid_list'][1] => ['value' => $status], $tpl['miapp']['kid_list'][2] => ['value' => date('Y-m-d H:i:s', $mch->created_at)], $tpl['miapp']['kid_list'][3] => ['value' => mb_substr($desc,0,18,'utf-8')], ]); } if ($tpl && $tpl['wxaapi'] && $tpl['wxaapi']['is_open']) { NoticeAction::sendMine2($user_id, $tpl['miapp']['template_id'], '', [ $tpl['miapp']['kid_list'][0] => ['value' => mb_substr($mch->name,0,18,'utf-8')], $tpl['miapp']['kid_list'][1] => ['value' => $status], $tpl['miapp']['kid_list'][2] => ['value' => date('Y-m-d H:i:s', $mch->created_at)], $tpl['miapp']['kid_list'][3] => ['value' => mb_substr($desc,0,18,'utf-8')], ]); } } else { return false; } } /** * @description: 订单提交通知 * @param {*} $user_id * @param {*} $room * @return {*} */ public static function LiveBegin($user_id, $anchor, $room) { $page = 'tools/live/player/index?id=' . $room->id; $self_mini = 1; if ($room->store_id > 0) { $self_mini = Option::get('self_mini', $room->store_id, 'store', 0)['value']; } if (\Yii::$app->prod_is_dandianpu() && !$self_mini) { $setting = Notice::findOne(['store_id' => 0]); } else { $setting = Notice::findOne(['store_id' => $room->store_id]); } if ($setting && $setting->live_begin) { $tpl = Json::decode($setting->live_begin); if ($tpl && $tpl['sms'] && $tpl['sms']['is_open']) { // NoticeAction::sendSms($mobile, $tpl['sms']['template_id'], $tpl['sms']['template_var'], $order_no, $store_id); } if ($tpl && $tpl['miapp'] && $tpl['miapp']['is_open']) { NoticeAction::sendMine($user_id, $tpl['miapp']['template_id'], $page, [ $tpl['miapp']['kid_list'][0] => ['value' => $room->name], $tpl['miapp']['kid_list'][1] => ['value' => $anchor->name], $tpl['miapp']['kid_list'][2] => ['value' => date('Y-m-d H:i:s', $room->start_time)], ]); } if ($tpl && $tpl['wxaapi'] && $tpl['wxaapi']['is_open']) { NoticeAction::sendMine2($user_id, $tpl['wxaapi']['template_id'], $page, [ $tpl['wxaapi']['kid_list'][0] => ['value' => $room->name], $tpl['wxaapi']['kid_list'][1] => ['value' => $anchor->name], $tpl['wxaapi']['kid_list'][3] => ['value' => date('Y-m-d H:i:s', $room->start_time)], ]); } } else { return false; } } /** * @description: 供货商/代理审核通过 * @param {*} $user_id * @param {*} $status 状态 0 未通过 1 已通过 * @param {*} $desc 备注 * @return {*} */ public static function AgentExamine($id, $type = 0) { $setting = Notice::findOne(['store_id' => 0]); if ($type === 1) { $supplier = Supplier::findOne(['id' => $id]); $mobile = $supplier->phone; $desc = '供货商'; $result = ((int)$supplier->status === 1) ? '通过' : '拒绝'; } elseif ($type === 2) { $store_audit = StoreAudit::findOne($id); $mobile = $store_audit->mobile; $desc = '商城'; $result = ((int)$store_audit->status === 1) ? '通过' : '拒绝'; } elseif ($type === 3) { $worker = Worker::findOne($id); $mobile = $worker->tel; $desc = '服务人员'; $result = ((int)$worker->status === 1) ? '通过' : '拒绝'; $self_mini = \app\models\Option::get('self_mini', get_store_id(), 'store', 0)['value']; if (\Yii::$app->prod_is_dandianpu() && !$self_mini) { $store_id = 0; } else { $store_id = get_store_id(); } $setting_ = Notice::findOne(['store_id' => $store_id]); if ($setting_ && $setting_->agent_examine) { $tpl = Json::decode($setting_->agent_examine); if ($tpl && $tpl['sms'] && $tpl['sms']['is_open'] && $tpl['sms']['template_id'] && $tpl['sms']['template_var']) { $setting = $setting_; } } } else { $agentApply = AgentApply::findOne(['saas_user_id' => $id, 'is_delete' => 0]); $mobile = $agentApply->mobile; $desc = '区域代理'; if ((int)$agentApply->agent_type === 1) { $desc = "推广代理"; } if ((int)$agentApply->agent_type === 2) { $desc = "产品代理"; } $result = ((int)$agentApply->status === 1) ? '通过' : '拒绝'; } if ($setting && $setting->agent_examine) { $tpl = Json::decode($setting->agent_examine); if ($tpl && $tpl['sms'] && $tpl['sms']['is_open']) { $tpl['sms']['template_var'] = $tpl['sms']['template_var'] ?: 'name'; $res = NoticeAction::sendSms($mobile, $tpl['sms']['template_id'], [$tpl['sms']['template_var'], 'result'], [$desc, $result]); if ($res['code'] == 0) { return ['code' => 0, 'msg' => true]; } else { return $res; } } } else { return false; } } /** * @description: 预约订单状态通知 * @param {*} $user_id * @param {*} $status 状态 0 未通过 1 已通过 * @param {*} $desc 备注 * @return {*} */ public static function bookExamine($id, $type = 0) { $store_id = get_store_id(); $store = Store::findOne($store_id); if ($store) { if (!in_array($store->business_model, [1, 2])) {//商盟非独立运营店铺也用联盟端配置 $store_id = 0; } } if ($store_id <= 0) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } else { $setting = Notice::findOne(['store_id' => $store_id]); if (!$setting) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } } if ($type === 1) { $examine = $setting->book_worker_examine; } else { $examine = $setting->book_success_examine; } $order = Order::findOne($id); if (!$order) { return false; } $mobile = $order->mobile; if ($setting && $examine) { $tpl = Json::decode($examine); if ($tpl && $tpl['sms'] && $tpl['sms']['is_open']) { // $tpl['sms']['template_var'] = $tpl['sms']['template_var'] ?: 'name'; $res = NoticeAction::sendSms($mobile, $tpl['sms']['template_id'], '', '', $store_id); if ($res['code'] == 0) { return ['code' => 0, 'msg' => true]; } else { return $res; } } return false; } else { return false; } } /** * @description: 订单支付通知 * @param integer $user_id * @param string $order_no * @param integer $pay_time * @param integer $pay_price * @param string $goods_name * @return {*} */ public static function Adopt($user_id, $mobile, $order_no,$goods_name,$type,$day1,$day2, string $desc = '') { $setting = Notice::findOne(['store_id' => get_store_id()]); $goods_name = $goods_name ?: '订单支付'; if ($type == 1){ $sms_type = 'adopt_mature'; $desc = "已成熟".$day1."天,".$day2."天后将默认选择农场收取"; }elseif ($type == 2){ $sms_type = 'adopt_storage'; $desc = "已入库".$day1."天,".$day2."天后将默认选择农场保管"; }elseif ($type == 3){ $sms_type = 'adopt_preserve'; $desc = "已保管".$day1."天,".$day2."天后将开始收取保管费用"; } if ($setting && $setting->$sms_type) { $tpl = Json::decode($setting->$sms_type); if ($tpl && $tpl['sms'] && $tpl['sms']['is_open']) { NoticeAction::sendAdoptSms($mobile, $tpl['sms']['template_id'], $tpl['sms']['template_var'], $goods_name,$day1,$day2); } if ($tpl && $tpl['miapp'] && $tpl['miapp']['is_open']) { NoticeAction::sendMine($user_id, $tpl['miapp']['template_id'], 'livestockAdoption/my_order/my_order ', [ // $tpl['miapp']['kid_list'][0] => ['value' => $goods_name], // $tpl['miapp']['kid_list'][1] => ['value' => $day1], // $tpl['miapp']['kid_list'][2] => ['value' => $day2], // $tpl['miapp']['kid_list'][3] => ['value' => date('Y-m-d H:i:s', time())], $tpl['miapp']['kid_list'][0] => ['value' => $order_no], $tpl['miapp']['kid_list'][1] => ['value' => mb_substr($goods_name,0,18,'utf-8')], $tpl['miapp']['kid_list'][2] => ['value' => $desc], $tpl['miapp']['kid_list'][3] => ['value' => date('Y-m-d H:i:s', time())], ]); } if ($tpl && $tpl['wxaapi'] && $tpl['wxaapi']['is_open']) { NoticeAction::sendMine2($user_id, $tpl['wxaapi']['template_id'], 'livestockAdoption/my_order/my_order ', [ // $tpl['wxaapi']['kid_list'][0] => ['value' => $goods_name], // $tpl['wxaapi']['kid_list'][1] => ['value' => $day1], // $tpl['wxaapi']['kid_list'][2] => ['value' => $day2], // $tpl['wxaapi']['kid_list'][3] => ['value' => date('Y-m-d H:i:s', time())], $tpl['wxaapi']['kid_list'][0] => ['value' => $order_no], $tpl['wxaapi']['kid_list'][1] => ['value' => mb_substr($goods_name,0,18,'utf-8')], $tpl['wxaapi']['kid_list'][2] => ['value' => $desc], $tpl['wxaapi']['kid_list'][3] => ['value' => date('Y-m-d H:i:s', time())], ]); } } else { return false; } } /** * @description: 认养流程状态改变通知 * @param integer $user_id * @param string $order_no * @return {*} */ public static function AdoptOrderStateChange($user_id, $mobile, $order_no, $goods_name, $type, string $desc = '') { $setting = Notice::findOne(['store_id' => get_store_id()]); \Yii::error("认养流程状态改变通知"); if ($type == 1){ $sms_type = 'adopt_order_confirm_mature'; $desc = "您的认养已成熟,记得选择采摘方式哦"; }elseif ($type == 2){ $sms_type = 'adopt_order_self_pick'; $desc = "您已选择自采,等待后台确认自采"; }elseif ($type == 3){ $sms_type = 'adopt_order_other_pick'; $desc = "您已选择代采,感谢您的支持"; }elseif ($type == 4){ $sms_type = 'adopt_order_confirm_self_pick_book'; $desc = "后台已确认自采预约,祝您采摘愉快"; }elseif ($type == 5){ $sms_type = 'adopt_order_start_self_pick'; $desc = "您已选择开始采摘,感谢您的支持"; }elseif ($type == 6){ $sms_type = 'adopt_order_end_self_pick'; $desc = "您已选择采摘完成,感谢您的支持"; }elseif ($type == 7){ $sms_type = 'adopt_order_confirm_self_pick_finish'; $desc = "后台已确认您的采摘完成,感谢您的支持"; }elseif ($type == 8){ $sms_type = 'adopt_order_pick_take'; $desc = "您已选择带走,记得及时来提货哦"; }elseif ($type == 9){ $sms_type = 'adopt_order_storage'; $desc = "您已选择入库,感谢您的支持,感谢您的支持"; }elseif ($type == 10){ $sms_type = 'adopt_order_confirm_storage'; $desc = "订单已入库,记得选择是否保管或者领走哦"; }elseif ($type == 11){ $sms_type = 'adopt_order_preserve'; $desc = "您选择保管,感谢您的支持,感谢您的支持"; }elseif ($type == 12){ $sms_type = 'adopt_order_no_preserve'; $desc = "您已选择不保管,记得及时来提货哦"; }elseif ($type == 13){ $sms_type = 'adopt_order_finish'; $desc = "您的订单已全部提货,感谢您的支持"; } if ($setting && $setting->$sms_type) { \Yii::error("认养流程状态改变通知1"); $tpl = Json::decode($setting->$sms_type); if ($tpl && $tpl['sms'] && $tpl['sms']['is_open']) { NoticeAction::sendSms($mobile, $tpl['sms']['template_id'], $tpl['sms']['template_var'], $order_no); } \Yii::error($tpl); if ($tpl && $tpl['miapp'] && $tpl['miapp']['is_open']) { \Yii::error("小程序认养流程状态改变通知"); NoticeAction::sendMine($user_id, $tpl['miapp']['template_id'], 'livestockAdoption/my_order/my_order ', [ $tpl['miapp']['kid_list'][0] => ['value' => mb_substr($order_no,0,18,'utf-8') ], $tpl['miapp']['kid_list'][1] => ['value' => mb_substr($goods_name,0,18,'utf-8')], $tpl['miapp']['kid_list'][2] => ['value' => $desc], $tpl['miapp']['kid_list'][3] => ['value' => date('Y-m-d H:i:s', time())], ]); } if ($tpl && $tpl['wxaapi'] && $tpl['wxaapi']['is_open']) { NoticeAction::sendMine2($user_id, $tpl['wxaapi']['template_id'], 'livestockAdoption/my_order/my_order ', [ $tpl['wxaapi']['kid_list'][0] => ['value' => mb_substr($order_no,0,18,'utf-8')], $tpl['wxaapi']['kid_list'][1] => ['value' => mb_substr($goods_name,0,18,'utf-8')], $tpl['wxaapi']['kid_list'][2] => ['value' => $desc], $tpl['wxaapi']['kid_list'][3] => ['value' => date('Y-m-d H:i:s', time())], ]); } } else { return false; } } /** * @description: 商品降价通知 * @param integer $user_id * @param array $goods * @return {*} */ public static function LoweringPrice($user_id, $goods) { $self_mini = 1; if (get_store_id() > 0) { $self_mini = Option::get('self_mini', get_store_id(), 'store', 0)['value']; } if (\Yii::$app->prod_is_dandianpu() && !$self_mini) { $setting = Notice::findOne(['store_id' => 0]); } else { $setting = Notice::findOne(['store_id' => get_store_id()]); } if ($setting && $setting->lowering_price) { $tpl = Json::decode($setting->lowering_price); if ($tpl && $tpl['miapp'] && $tpl['miapp']['is_open']) { NoticeAction::sendMine($user_id, $tpl['miapp']['template_id'], 'goods/goods/goods?id='.$goods['id'], [ $tpl['miapp']['kid_list'][0] => ['value' => $goods['name']], $tpl['miapp']['kid_list'][1] => ['value' => $goods['diff_price']], $tpl['miapp']['kid_list'][2] => ['value' => $goods['user_min_price']], ]); } } else { return false; } } /** * @description: 注册通知上级 * @param string $mobile * @param int $user_name * @return array */ public static function registerTellParent($mobile, $user_name, $is_platform = false) { if ($is_platform) { $store_id = -1; } else { $store_id = get_store_id(); } $store = Store::findOne($store_id); if ($store) { if (!in_array($store->business_model, [1, 2])) {//商盟非独立运营店铺也用联盟端配置 $store_id = 0; } } if ($store_id <= 0) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } else { $setting = Notice::findOne(['store_id' => $store_id]); if (!$setting) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } } if ($setting && $setting->register_tell_parent) { $tpl = Json::decode($setting->register_tell_parent); if ($tpl && $tpl['sms'] && $tpl['sms']['is_open']) { $res = NoticeAction::sendSms($mobile, $tpl['sms']['template_id'], $tpl['sms']['template_var'], $user_name, $store_id); if ($res['code'] == 0) { return ['code' => 0, 'msg' => true]; } else { return $res; } } } else { return [ 'code' => 1, 'msg' => '请检查短信验证码相关配置' ]; } } /** * @description: 用户批发审核通过/拒绝通知 * @return array|boolean */ public static function userAuditStatusNotice($id, $store_id = 0) { $userAuditLog = UserAuditLog::findOne(['id' => $id, 'status' => [UserAuditLog::STATUS_AGREE, UserAuditLog::STATUS_PASS]]); if (!$userAuditLog) { return false; } // $user = User::findOne($userAuditLog->user_id); // if (!$user) { // return false; // } // $binding = $user->binding; $binding = $userAuditLog->mobile ?: ''; if (empty($userAuditLog->mobile)) { $user = User::findOne($userAuditLog->user_id); if (!$user) { return false; } $binding = $user->binding ?: ''; } if (empty($binding)) { return false; } $result = ''; if (intval($userAuditLog->status) === 1) { $result = '通过'; } elseif (intval($userAuditLog->status) === 2) { $result = '拒绝'; } $store = Store::findOne($store_id); if ($store) { if (!in_array($store->business_model, [1, 2])) {//商盟非独立运营店铺也用联盟端配置 $store_id = 0; } } if ($store_id <= 0) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } else { $setting = Notice::findOne(['store_id' => $store_id]); if (!$setting) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } } if ($setting && $setting->user_audit_status_notice) { $tpl = Json::decode($setting->user_audit_status_notice); if ($tpl && $tpl['sms'] && $tpl['sms']['is_open']) { $tpl['sms']['template_var'] = $tpl['sms']['template_var'] ?: 'status'; $res = NoticeAction::sendSms($binding, $tpl['sms']['template_id'], $tpl['sms']['template_var'], $result, $store_id); if ($res['code'] == 0) { return ['code' => 0, 'msg' => true]; } else { return $res; } } } else { return false; } } /** * @description: 用户进入商城审核通知(商家) * @return array|boolean */ public static function userAuditNotice($id, $store_id = 0) { $userAuditLog = UserAuditLog::findOne(['id' => $id, 'status' => UserAuditLog::STATUS_NOT_AGREE]); if (!$userAuditLog) { return false; } $result = $userAuditLog->mobile ?: ''; if (empty($userAuditLog->mobile)) { $user = User::findOne($userAuditLog->user_id); if (!$user) { return false; } $result = $user->binding ?: ''; } $store = Store::findOne($store_id); if ($store) { if (!in_array($store->business_model, [1, 2])) {//商盟非独立运营店铺也用联盟端配置 $store_id = 0; } } if ($store_id <= 0) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } else { $setting = Notice::findOne(['store_id' => $store_id]); if (!$setting) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } } if ($setting && $setting->user_audit_notice) { $tpl = Json::decode($setting->user_audit_notice); if ($tpl && $tpl['sms'] && $tpl['sms']['is_open']) { $mobile = explode(',', $tpl['sms']['receive_mobile']);; $tpl['sms']['template_var'] = $tpl['sms']['template_var'] ?: 'name'; foreach($mobile as $val) { NoticeAction::sendSms($val, $tpl['sms']['template_id'], $tpl['sms']['template_var'], $result, $store_id); } } } else { return false; } } /** * 服务订单派单通知 */ public static function workerOrderReceivedNotice($order_id) { $workerOrderExt = WorkerOrderExt::findOne($order_id); if ($workerOrderExt) { $store_id = $workerOrderExt->store_id; $store = Store::findOne($store_id); if ($store) { if (!in_array($store->business_model, [1, 2])) {//商盟非独立运营店铺也用联盟端配置 $store_id = 0; } } if ($store_id <= 0) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } else { $setting = Notice::findOne(['store_id' => $store_id]); if (!$setting) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } } $tpl = null; // if ($setting) { if (in_array($workerOrderExt->status_ext, [ WorkerOrderExt::STATUS_EXT_WAIT_BIND_OK,//待接单(有客户下单指定服务人员或者后台分配服务人员) WorkerOrderExt::STATUS_EXT_CANCEL,//已取消 WorkerOrderExt::STATUS_EXT_FINISH//已完成 ])) { $worker = Worker::findOne($workerOrderExt->worker_id); if ($setting->user_audit_notice) { $tpl = Json::decode($setting->worker_order); } $mobile = $worker->tel; if ($tpl && $tpl['sms'] && $tpl['sms']['is_open']) { $template_var = $tpl['sms']['template_var'] ?: 'status,time'; $template_var = explode(',', $template_var); $result = NoticeAction::sendSms($mobile, $tpl['sms']['template_id'], $template_var, [ WorkerOrderExt::$getStatusExtName[$workerOrderExt->status_ext], date('Y年m月d日 H:i:s') ], $store_id); return true; } } else { $order = Order::findOne($workerOrderExt->order_id); if ($setting->user_audit_notice) { $tpl = Json::decode($setting->worker_order_received); } $mobile = $order->mobile; if ($tpl && $tpl['sms'] && $tpl['sms']['is_open']) { $result = NoticeAction::sendSms($mobile, $tpl['sms']['template_id'], '', '', $store_id); return true; } } } } return false; } /* begin 2025/07/11 11:08:47 WPing丶 */ /** * @description: 用户下单通知服务人员抢单 * @param int $md_id * @return {*} */ public static function ServiceNewOrder($order_no, $store_id = 0, $order = null) { $store = Store::findOne($store_id); if ($store) { if (!in_array($store->business_model, [1, 2])) {//商盟非独立运营店铺也用联盟端配置 $store_id = 0; } } if ($store_id <= 0) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } else { $setting = Notice::findOne(['store_id' => $store_id]); if (!$setting) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } } if ($setting && $setting->service_new_order) { $tpl = Json::decode($setting->service_new_order); if ($tpl && $tpl['wxaapi'] && $tpl['wxaapi']['is_open']) { try { // 1. 获取订单明细中的商品ID $goods_detail = OrderDetail::find()->where(['order_id' => $order->id])->one(); $goods_id = $goods_detail->goods_id; $worker_ids = WorkerGoods::find()->alias('wg') ->leftJoin(['w' => Worker::tableName()], 'w.id = wg.worker_id') ->where(['wg.goods_id' => $goods_id, 'wg.status' => 1]) ->select('w.user_id') ->column(); $worker_order = WorkerOrderExt::findOne(['order_id' => $order->id]); //获取客户的经纬度 $lat = $worker_order->lat; $lng = $worker_order->lng; //获取接单范围 $setting = WorkerSetting::getByStoreId($store_id); $orderSpace = $setting['order_space']; $worker = Worker::find()->alias('w') ->select([ 'w.*', new \yii\db\Expression(" acos( cos({$lat} * pi() / 180) * cos(w.lat * pi() / 180) * cos({$lng} * pi() / 180 - w.lng * pi() / 180) + sin({$lat} * pi() / 180) * sin(w.lat * pi() / 180) ) * 6370996.81 AS distance ") ]) ->where(['store_id' => $store_id]) ->andWhere(['user_id' => $worker_ids]) ->andWhere(['and', ['IS NOT', 'w.lng', null],['IS NOT', 'w.lat', null]]) ->having(['<=', 'distance', $orderSpace]) ->orderBy('distance ASC') ->asArray() ->all(); foreach($worker as $item){ NoticeAction::sendMine2($item['user_id'], $tpl['wxaapi']['template_id'], 'service-home/rob-order/index', [ $tpl['wxaapi']['kid_list'][0] => ['value' => $order_no], $tpl['wxaapi']['kid_list'][1] => ['value' => date('Y-m-d H:i:s')], $tpl['wxaapi']['kid_list'][2] => ['value' => $order['pay_price']], ]); } } catch (\Throwable $e) { debug_log($e, 'notice.log'); } } } } /** * @description: 服务人员接单通知 * @param int $worker_id * @param int $order_id * @return void */ public static function ServiceReceiveOrder($order_id) { $worker_id = WorkerOrderExt::findOne($order_id)->worker_id; $worker = Worker::findOne($worker_id); $order = Order::findOne(WorkerOrderExt::findOne($order_id)->order_id); if (!$worker || !$order) { return false; } $store_id = $order->store_id; $store = Store::findOne($store_id); if ($store) { if (!in_array($store->business_model, [1, 2])) {//商盟非独立运营店铺也用联盟端配置 $store_id = 0; } } if ($store_id <= 0) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } else { $setting = Notice::findOne(['store_id' => $store_id]); if (!$setting) { $setting = Notice::findOne(['store_id' => 0]); $store_id = 0; if (!$setting) { $setting = Notice::findOne(['store_id' => -1]); $store_id = -1; } } } if ($setting && $setting->service_receive_order) { $tpl = \yii\helpers\Json::decode($setting->service_receive_order); if ($tpl && $tpl['wxaapi'] && $tpl['wxaapi']['is_open']) { $user_name = ''; $user = User::findOne($order->user_id); if($user){ $saas = \app\models\SaasUser::findOne(['mobile' => $user->binding]); $saas && $user_name = $saas->name; } NoticeAction::sendMine2($worker->user_id, $tpl['wxaapi']['template_id'], 'service-home/index/index', [ $tpl['wxaapi']['kid_list'][0] => ['value' => $order->order_no], $tpl['wxaapi']['kid_list'][1] => ['value' => $order->pay_price], $tpl['wxaapi']['kid_list'][2] => ['value' => $user_name], $tpl['wxaapi']['kid_list'][3] => ['value' => date('Y-m-d H:i:s', $order->pay_time)], ]); } } else { return false; } } /* end */ }