소스 검색

fix:积分发送bug

wzh 4 달 전
부모
커밋
a43d81fbeb
2개의 변경된 파일24개의 추가작업 그리고 4개의 파일을 삭제
  1. 1 1
      crmeb/app/adminapi/controller/Login.php
  2. 23 3
      crmeb/app/services/wechat/WechatServices.php

+ 1 - 1
crmeb/app/adminapi/controller/Login.php

@@ -248,7 +248,7 @@ class Login extends AuthController
             if($result){
                 $code = 1;
                 $params = [$order_id];
-                Db::execute('update `eb_score_record` set `status` = 0 where `order_id` = ?', $params);
+                Db::execute('update `eb_score_record` set `status` = 1,send_time = now() where `order_id` = ?', $params);
             }else{
                 $code = 0;
             }

+ 23 - 3
crmeb/app/services/wechat/WechatServices.php

@@ -16,6 +16,7 @@ use app\services\BaseServices;
 use app\dao\wechat\WechatUserDao;
 use app\services\user\UserServices;
 use app\services\user\UserVisitServices;
+use app\services\user\UserWechatuserServices;
 use crmeb\exceptions\ApiException;
 use crmeb\services\app\MiniProgramService;
 use crmeb\services\CacheService;
@@ -128,11 +129,28 @@ class WechatServices extends BaseServices
             if (isset($wechatInfo['privilege'])) unset($wechatInfo['privilege']);
         }
         $wechatInfo['user_type'] = 'wechat';
-        $wechatInfo['goods_user_type'] = $goods_user_type;
         $openid = $wechatInfo['openid'];
         /** @var WechatUserServices $wechatUserServices */
         $wechatUserServices = app()->make(WechatUserServices::class);
         $user = $wechatUserServices->getAuthUserInfo($openid, 'wechat');
+
+
+        if(!empty($user['uid'])){
+            /** @var UserWechatuserServices $userWechatUserServices */
+            $userWechatUserServices = app()->make(UserWechatuserServices::class);
+            $wechatUserInfo = $userWechatUserServices->getUserByUid($user['uid']);
+            $real_goods_user_type = $wechatUserInfo['goods_user_type'];
+            if(!is_null($goods_user_type)){
+                $goods_user_type = (int)$goods_user_type;
+                if($goods_user_type>0){
+                    $wechatInfo['goods_user_type'] = $goods_user_type;
+                }else{
+                    if(empty($real_goods_user_type)){
+                        $wechatInfo['goods_user_type'] = $goods_user_type;
+                    }
+                }
+             }
+        }
         $createData = [$openid, $wechatInfo, $spread, $agent_id, 'wechat', 'wechat'];
         $storeUserMobile = sys_config('store_user_mobile');
         if ($storeUserMobile && (($user && $user['phone'] == '') || !$user)) {
@@ -140,7 +158,10 @@ class WechatServices extends BaseServices
             CacheService::set($userInfoKey, $createData, 7200);
             return ['bindPhone' => true, 'key' => $userInfoKey];
         }
+
+
         $user = $wechatUserServices->wechatOauthAfter($createData);
+
         $wechatUserServices->wechatUpdata([$user['uid'], $wechatInfo]);
         $unionid = $wechatInfo['unionid'];
         $this->readUserScore($user['uid'],$unionid);
@@ -170,11 +191,10 @@ class WechatServices extends BaseServices
                 $mark = $record['mark'];
                 $order_id = $record['order_id'];
                 $params = [$order_id];
-                $affectedRows =Db::execute('update `eb_score_record` set `status` = 1,send_time = now() where `order_id` = ?', $params);
+                $affectedRows =Db::execute('update `eb_score_record` set `status` = 1,send_time = now() where `order_id` = ? and `status` = 0', $params);
                 if($affectedRows>0){
                     $result = $this->doAddScore($uid, $score, $integration_status, $title, $mark);
                 }
-                Log::info($result.'Score record processed:'.$record);
             }
         }
     }