瀏覽代碼

修改{user}的取值方式

lh 3 年之前
父節點
當前提交
51acd414b8

+ 18 - 1
app/Http/Controllers/Wechat/OfficialAccount/OfficialInteractiveEventController.php

@@ -309,7 +309,7 @@ class OfficialInteractiveEventController extends Controller
                 }
                 }
 
 
                 if ($special_keyword['mode'] == 2) {
                 if ($special_keyword['mode'] == 2) {
-                    $nickname = DB::connection('api_mysql')->table('users')->where(['openid'=>$openid, 'distribution_channel_id'=>$distribution_channel_id])->value('nickname');
+                    $nickname = DB::connection('api_mysql')->table('temp_force_subscribe_users')->leftjoin('users', 'users.id', '=', 'temp_force_subscribe_users.uid')->where(['temp_force_subscribe_users.openid'=>$openid, 'temp_force_subscribe_users.distribution_channel_id'=>$distribution_channel_id])->value('users.nickname');
                     $datatext['text'] = textDecode(str_replace('{user}', $nickname, $special_keyword['content']));
                     $datatext['text'] = textDecode(str_replace('{user}', $nickname, $special_keyword['content']));
                     $datatext['text'] = ChannelService::convertChannelReplyUrl($is_outer_site, $appid, $openid, $datatext['text'], 'text_search', 'keyword_' . $special_keyword['id']);
                     $datatext['text'] = ChannelService::convertChannelReplyUrl($is_outer_site, $appid, $openid, $datatext['text'], 'text_search', 'keyword_' . $special_keyword['id']);
                     return response()->success($datatext);
                     return response()->success($datatext);
@@ -734,6 +734,23 @@ class OfficialInteractiveEventController extends Controller
                     return response()->item(new OfficialInteractiveEventTransformer(), (object)$feedback);
                     return response()->item(new OfficialInteractiveEventTransformer(), (object)$feedback);
                 }
                 }
 
 
+            }elseif (preg_match('/^[\d]-[\d]$/', $content) && !empty($openid) && !empty($distribution_channel_id)) {
+                $defined_menu = DB::connection('api_mysql')->table('self_defined_menu')
+                    ->where(['distribution_channel_id'=>$distribution_channel_id, 'status'=>1, 'is_generate'=>1])->value('menu');
+                \Log::info('defined_menu: '.$defined_menu);
+
+                if ($defined_menu) {
+                    $defined_menu_info_arr = json_decode(json_decode($defined_menu), true);
+                    if ($defined_menu_info_arr && !empty($defined_menu_info_arr['content'])) {
+                        $feedback['text'] = '';
+                        foreach ($defined_menu_info_arr['content'] as $v) {
+                            if ($v['key'] === $content) {
+                                $feedback['text'] = $v['content'];
+                            }
+                        }
+                        return response()->item(new OfficialInteractiveEventTransformer(), (object)$feedback);
+                    }
+                }
             }
             }
         } elseif ($event == "unsubscribe") {
         } elseif ($event == "unsubscribe") {
             $feedback['text'] = "";
             $feedback['text'] = "";

+ 1 - 1
app/Jobs/ForceSubscribeDelayMsgJob.php

@@ -73,7 +73,7 @@ class ForceSubscribeDelayMsgJob extends Job implements ShouldQueue
             if ($this->data->mode == 1) {
             if ($this->data->mode == 1) {
                 $result = self::send($client,$access_token,$this->data->openid,textDecode($this->data->title),textDecode($this->data->desc),$link,$this->data->icon);
                 $result = self::send($client,$access_token,$this->data->openid,textDecode($this->data->title),textDecode($this->data->desc),$link,$this->data->icon);
             }elseif ($this->data->mode == 2) {
             }elseif ($this->data->mode == 2) {
-                $nickname = DB::connection('api_mysql')->table('users')->where(['openid'=>$this->data->openid, 'distribution_channel_id'=>$this->data->distribution_channel_id])->value('nickname');
+                $nickname = DB::connection('api_mysql')->table('temp_force_subscribe_users')->leftjoin('users', 'users.id', '=', 'temp_force_subscribe_users.uid')->where(['temp_force_subscribe_users.openid'=>$this->data->openid, 'temp_force_subscribe_users.distribution_channel_id'=>$this->data->distribution_channel_id])->value('users.nickname');
                 $content = textDecode(str_replace('{user}', $nickname, $this->data->content));
                 $content = textDecode(str_replace('{user}', $nickname, $this->data->content));
                 $result = self::sendMsg($client,$access_token,$this->data->openid,$content);
                 $result = self::sendMsg($client,$access_token,$this->data->openid,$content);
                 $content = $nickname = null;
                 $content = $nickname = null;

+ 1 - 1
app/Modules/OfficialAccount/Services/ForceSubscribeDelayMsgService.php

@@ -176,7 +176,7 @@ class ForceSubscribeDelayMsgService
                     if ($item->mode == 1) {
                     if ($item->mode == 1) {
                         $result = self::send($client,$access_token,$item->openid,textDecode($item->title),textDecode($item->desc),$link,$item->icon);
                         $result = self::send($client,$access_token,$item->openid,textDecode($item->title),textDecode($item->desc),$link,$item->icon);
                     }elseif ($item->mode == 2) {
                     }elseif ($item->mode == 2) {
-                        $nickname = DB::connection('api_mysql')->table('users')->where(['openid'=>$item->openid, 'distribution_channel_id'=>$item->distribution_channel_id])->value('nickname');
+                        $nickname = DB::connection('api_mysql')->table('temp_force_subscribe_users')->leftjoin('users', 'users.id', '=', 'temp_force_subscribe_users.uid')->where(['temp_force_subscribe_users.openid'=>$item->openid, 'temp_force_subscribe_users.distribution_channel_id'=>$item->distribution_channel_id])->value('users.nickname');
                         $content = textDecode(str_replace('{user}', $nickname, $item->content));
                         $content = textDecode(str_replace('{user}', $nickname, $item->content));
                         $result = self::sendMsg($client,$access_token,$item->openid,$content);
                         $result = self::sendMsg($client,$access_token,$item->openid,$content);
                         $content = $nickname = null;
                         $content = $nickname = null;