where(['id' => $data, 'push_type' => 2])->find(); if($record) { // 待发送 if($record['status'] == 0) { // 范围用户 if($record['user_type'] == 2) { $k_user_params = Db::table('sms_push_event_user')->where(['event_id' => $record['id']])->find(); if($k_user_params) { $user_list = ShopInfo::getUserList($k_user_params); }else { Log::info('范围用户查找出错'); return false; } }elseif ($record['status'] == 1) { // 全部用户 $user_list = Db::table('tb_shop_user')->whereNotNull('phone')->select(); $user_list = ShopInfo::evnuserlist($user_list); } $y_temp = Db::table('sms_shop_template')->where(['id' => $record['push_event_id']])->find(); if($user_list && $y_temp) { foreach ($user_list as $k => $v) { // 检测余额 $shop_money = Db::table('sms_shop_money')->where(['shop_id' => $record['shop_id']])->find(); if($shop_money) { // 余额计算 if($shop_money['money'] > config('cons.sms_price')) { $templateParam = replace_json_keys($record['json'], $y_temp['content_json']); $data = [ 'templateCode' => $y_temp['template_code'], 'templateParam' => $templateParam, 'phoneNumbers' => $user_list['phone'], 'signName' => config('cons.sms_sign'), ]; $res = AlibabaSms::main($data); Db::table('sms_push_event')->where(['id' => $record['id']])->update([ 'status' => '1', 'update_time' => date('Y-m-d H:i:s'), 'send_time' => date('Y-m-d H:i:s'), ]); if($res['Code'] == 'OK') { Db::table('sms_push_event_record')->insert([ 'shop_id' => $record['shop_id'], 'event_id' => $record['id'], 'user_id' => $v['user_id'], 'user_phone' => $v['phone'], 'biz_id' => $res['BizId'], 'send_time' => date('Y-m-d H:i:s'), 'create_time' => date('Y-m-d H:i:s'), 'status' => 1, ]); } }else { Log::info('商户【' . $record['main_shop_id'] . '】余额不足'); return false; } }else { Log::info('商户【' . $record['main_shop_id'] . '】余额为空'); return false; } } }else { Log::info('【发送营销短信】无目标用户---》' . $record['user_id']); } } }else { Log::info('发送营销短信未查询到'); } } } }