actionSend(['mall_id' => $mall['id']]); } return ExitCode::OK; } catch (\Exception $e) { \Yii::getLogger()->flush(true); return false; } } public function actionSend($params) { try { $sms_setting = \Yii::$app->services->setting->addons->get($params['mall_id'], StoreEnum::ADDONS_NAME, 'sms_setting'); if (empty($sms_setting['is_alert_expire'])) { // echo 'o2o门店到期提醒未开启'; return true; } if (empty($sms_setting['expire_template_id'])) { // echo 'o2o门店到期提醒,模板ID为空'; return true; } if (empty($sms_setting['expire_day'])) { $remind_time = time() + 1800; } else { $remind_time = time() + ($sms_setting['expire_day'] * 3600 * 24); } //获取门店数据 $store_list = Store::lists([ 'where' => [ ['mall_id' => $params['mall_id']], ['and', ['>=', 'expire_time', time()], ['<=', 'expire_time', $remind_time]], ['status' => StatusEnum::ENABLED], ], 'select' => 'id,mall_id,store_name,shop_mobile,user_id,expire_time' ]); if (!empty($store_list)) { $SmsConfig = new Sms($params['mall_id']); $easy_sms = $SmsConfig->easySms; foreach ($store_list as $key => $value) { //查找门店是否存在过期提醒短信记录 $sms_log = StoreExpireSmsLog::getOne([ ['mall_id' => $params['mall_id']], ['store_id' => $value['id']], ['date_time' => date('Ymd', $value['expire_time'])] ], true, [], 'id desc'); if (!empty($sms_log)) continue; $message = new ShopExpireMessage($params['mall_id'], $sms_setting['expire_day'], $value['store_name']); $easy_sms->send($value['shop_mobile'], $message); //记录发送短信记录 $data = [ 'mall_id' => $params['mall_id'], 'store_id' => $value['id'], 'date_time' => date('Ymd', $value['expire_time']), 'status' => StatusEnum::ENABLED, ]; $res = StoreExpireSmsLog::setData($data); if (!$res) var_dump('短信发送记录添加失败,store_id:'. $value['id']); } } return true; } catch (\Exception $e) { var_dump($e->getMessage()); throw new Exception($e->getMessage()); } } }