Procházet zdrojové kódy

注销用户同时删除客服,并停止此用户的消息的发送

evoxwht před 2 roky
rodič
revize
bbc4c92094

+ 12 - 5
crmeb/app/services/message/notice/WechatTemplateListService.php

@@ -14,6 +14,7 @@ namespace app\services\message\notice;
 use app\jobs\TemplateJob;
 use app\services\message\NoticeService;
 use app\services\kefu\service\StoreServiceServices;
+use app\services\user\UserServices;
 use app\services\wechat\WechatUserServices;
 use think\facade\Log;
 
@@ -52,9 +53,13 @@ class WechatTemplateListService extends NoticeService
      */
     public function getOpenidByUid(int $uid)
     {
-        /** @var WechatUserServices $wechatServices */
-        $wechatServices = app()->make(WechatUserServices::class);
-        return $wechatServices->uidToOpenid($uid, 'wechat');
+        $isDel = app()->make(UserServices::class)->value(['uid' => $uid], 'is_del');
+        if ($isDel) {
+            $openid = '';
+        } else {
+            $openid = app()->make(WechatUserServices::class)->uidToOpenid($uid, 'wechat');
+        }
+        return $openid;
     }
 
     /**
@@ -71,8 +76,10 @@ class WechatTemplateListService extends NoticeService
             $this->isOpen = $this->noticeInfo['is_wechat'] === 1;
             if ($this->isOpen) {
                 $openid = $this->getOpenidByUid($uid);
-                //放入队列执行
-                TemplateJob::dispatch('doJob', ['wechat', $openid, $this->noticeInfo['mark'], $data, $link, $color]);
+                if ($openid != '') {
+                    //放入队列执行
+                    TemplateJob::dispatch('doJob', ['wechat', $openid, $this->noticeInfo['mark'], $data, $link, $color]);
+                }
             }
         } catch (\Exception $e) {
             Log::error($e->getMessage());

+ 5 - 0
crmeb/app/services/user/UserCancelServices.php

@@ -4,6 +4,7 @@ namespace app\services\user;
 
 use app\dao\user\UserCancelDao;
 use app\services\BaseServices;
+use app\services\kefu\service\StoreServiceServices;
 use app\services\wechat\WechatUserServices;
 use crmeb\services\CacheService;
 
@@ -31,9 +32,13 @@ class UserCancelServices extends BaseServices
         $userServices = app()->make(UserServices::class);
         /** @var WechatUserServices $wechatUserServices */
         $wechatUserServices = app()->make(WechatUserServices::class);
+        /** @var StoreServiceServices $ServiceServices */
+        $ServiceServices = app()->make(StoreServiceServices::class);
         $userServices->update($uid, ['is_del' => 1]);
         $userServices->update(['spread_uid' => $uid], ['spread_uid' => 0, 'spread_time' => 0]);
         $wechatUserServices->update(['uid' => $uid], ['is_del' => 1]);
+        $ServiceServices->delete(['uid' => $uid]);
+        return true;
     }
 
     /**

+ 1 - 1
crmeb/app/services/wechat/RoutineServices.php

@@ -479,7 +479,7 @@ class RoutineServices extends BaseServices
         if (!$userInfo || !isset($userInfo['purePhoneNumber'])) {
             throw new ApiException(410079);
         }
-        $uid = app()->make(WechatUserServices::class)->openidTouid($userInfoCong['openid']);
+        $uid = app()->make(WechatUserServices::class)->openidToUid($userInfoCong['openid']);
         $userServices = app()->make(UserServices::class);
         if ($userServices->count(['phone' => $userInfo['purePhoneNumber']])) {
             throw new ApiException(410028);

+ 1 - 1
crmeb/app/services/wechat/WechatUserServices.php

@@ -83,7 +83,7 @@ class WechatUserServices extends BaseServices
      * @param string $openidType
      * @return mixed
      */
-    public function openidTouid($openid, $openidType = 'openid')
+    public function openidToUid($openid, string $openidType = 'openid')
     {
         $uid = $this->dao->value([[$openidType, '=', $openid], ['user_type', '<>', 'h5']], 'uid');
         if (!$uid)