Sfoglia il codice sorgente

Merge branch 'feature/NC-55' into new-version

zhangl 1 anno fa
parent
commit
c325891219
1 ha cambiato i file con 52 aggiunte e 104 eliminazioni
  1. 52 104
      common/models/forms/TransferForm.php

+ 52 - 104
common/models/forms/TransferForm.php

@@ -200,14 +200,12 @@ class TransferForm extends Model {
         // 发起人是否报单中心
         $recipientIsDec = $recipient['IS_DEC'] == 1;
 
-        // 1. 如果发起人和接受者都是报单中心,则转账无限制
+        // 如果发起人和接受者都是报单中心,则转账无限制
         if (($initiatorIsDec == 1) && ($recipientIsDec == 1)) {
             return true;
-        }
-
-        // 2. 如果发起人是报单中心, 则可以转账给自己的推荐网下级
-        if ($initiatorIsDec == 1) {
-            $sql = <<<SQL
+        } else {
+            // 接受人不是报单中心,则只能转给自己推荐网的某个节点
+            $sqlUp =<<<SQL
                 WITH recursive t_rec AS 
                 (
                     SELECT
@@ -243,110 +241,60 @@ class TransferForm extends Model {
                 FROM
                     t_rec
 SQL;
-            // 查询接受者的所有上级,如果没有发起人,则不能转账
-            $relationNode = \Yii::$app->db->createCommand($sql)
-                ->bindValue(':USER_NAME', $this->toUserName)
+            // 上级
+            $relationNodeUp = \Yii::$app->db->createCommand($sqlUp)
+                ->bindValue(':USER_NAME' , $fromUser['USER_NAME'])
                 ->queryAll();
 
-            $relationNode = array_column($relationNode, 'USER_NAME');
-            if (!in_array($fromUser['USER_NAME'], $relationNode)) {
-                $this->addError($attribute, '转账失败:转入会员不是您的上级或下级');
-                return null;
-            }
-            return true;
-        }
-
-        // 3. 如果发起人是普通会员,则只能转给自己推荐网的某个节点
-        // 上级节点
-        $sqlUp =<<<SQL
-            WITH recursive t_rec AS 
-            (
-                SELECT
-                    m.USER_ID,
-                    U.USER_NAME,
-                    m.PARENT_UID,
-                    U2.USER_NAME AS PARENT_NAME,
-                    1 AS node_level 
-                FROM
-                    AR_USER_RELATION_NEW m 
-                    LEFT JOIN AR_USER U ON U.ID = m.USER_ID
-                    LEFT JOIN AR_USER U2 ON U2.ID = m.PARENT_UID
-                WHERE
-                    U.USER_NAME = :USER_NAME 
-                    
-                UNION ALL
-                
-                SELECT
-                    t1.USER_ID,
-                    U.USER_NAME,
-                    t1.PARENT_UID,
-                    U2.USER_NAME AS PARENT_NAME,
-                    t2.node_level + 1 -- 结点层级
-                    
-                FROM
-                    AR_USER_RELATION_NEW t1
-                    JOIN t_rec t2 ON t2.PARENT_UID = t1.USER_ID
-                    LEFT JOIN AR_USER U ON U.ID = t1.USER_ID
-                    LEFT JOIN AR_USER U2 ON U2.ID = t1.PARENT_UID
-                ) 
-            SELECT
-                * 
-            FROM
-                t_rec
-SQL;
-        // 上级
-        $relationNodeUp = \Yii::$app->db->createCommand($sqlUp)
-            ->bindValue(':USER_NAME' , $fromUser['USER_NAME'])
-            ->queryAll();
-
-        $relationNodeUp = array_column($relationNodeUp, 'USER_NAME');
-        unset($relationNodeUp[$fromUser['USER_NAME']]);
-        if (!in_array($this->toUserName, $relationNodeUp)) {
-            // 下级节点
-            $sqlFloor =<<<SQL
-                WITH recursive t_rec AS 
-                (
-                    SELECT
-                        m.USER_ID,
-                        U.USER_NAME,
-                        m.PARENT_UID,
-                        U2.USER_NAME AS PARENT_NAME,
-                        1 AS node_level 
-                    FROM
-                        AR_USER_RELATION_NEW m 
-                        LEFT JOIN AR_USER U ON U.ID = m.USER_ID
-                        LEFT JOIN AR_USER U2 ON U2.ID = m.PARENT_UID
-                    WHERE
-                        U.USER_NAME = :USER_NAME 
+            $relationNodeUp = array_column($relationNodeUp, 'USER_NAME');
+            unset($relationNodeUp[$fromUser['USER_NAME']]);
+            if (!in_array($this->toUserName, $relationNodeUp)) {
+                // 下级节点
+                $sqlFloor = <<<SQL
+                    WITH recursive t_rec AS 
+                    (
+                        SELECT
+                            m.USER_ID,
+                            U.USER_NAME,
+                            m.PARENT_UID,
+                            U2.USER_NAME AS PARENT_NAME,
+                            1 AS node_level 
+                        FROM
+                            AR_USER_RELATION_NEW m 
+                            LEFT JOIN AR_USER U ON U.ID = m.USER_ID
+                            LEFT JOIN AR_USER U2 ON U2.ID = m.PARENT_UID
+                        WHERE
+                            U.USER_NAME = :USER_NAME 
+                            
+                        UNION ALL
                         
-                    UNION ALL
-                    
+                        SELECT
+                            t1.USER_ID,
+                            U.USER_NAME,
+                            t1.PARENT_UID,
+                            U2.USER_NAME AS PARENT_NAME,
+                            t2.node_level + 1 -- 结点层级
+                            
+                        FROM
+                            AR_USER_RELATION_NEW t1
+                            JOIN t_rec t2 ON t2.PARENT_UID = t1.USER_ID
+                            LEFT JOIN AR_USER U ON U.ID = t1.USER_ID
+                            LEFT JOIN AR_USER U2 ON U2.ID = t1.PARENT_UID
+                        ) 
                     SELECT
-                        t1.USER_ID,
-                        U.USER_NAME,
-                        t1.PARENT_UID,
-                        U2.USER_NAME AS PARENT_NAME,
-                        t2.node_level + 1 -- 结点层级
-                        
+                        * 
                     FROM
-                        AR_USER_RELATION_NEW t1
-                        JOIN t_rec t2 ON t2.PARENT_UID = t1.USER_ID
-                        LEFT JOIN AR_USER U ON U.ID = t1.USER_ID
-                        LEFT JOIN AR_USER U2 ON U2.ID = t1.PARENT_UID
-                    ) 
-                SELECT
-                    * 
-                FROM
-                    t_rec
+                        t_rec
 SQL;
-            // 下级
-            $relationNodeFloor = \Yii::$app->db->createCommand($sqlFloor)
-                ->bindValue(':USER_NAME' , $this->toUserName)
-                ->queryAll();
-            $relationNodeFloor = array_column($relationNodeFloor, 'USER_NAME');
-            if (!in_array($fromUser['USER_NAME'], $relationNodeFloor)) {
-                $this->addError($attribute, '转账失败:转入会员不是您的上级或下级');
-                return null;
+                // 下级
+                $relationNodeFloor = \Yii::$app->db->createCommand($sqlFloor)
+                    ->bindValue(':USER_NAME', $this->toUserName)
+                    ->queryAll();
+                $relationNodeFloor = array_column($relationNodeFloor, 'USER_NAME');
+                if (!in_array($fromUser['USER_NAME'], $relationNodeFloor)) {
+                    $this->addError($attribute, '转账失败:转入会员不是您的上级或下级');
+                    return null;
+                }
             }
         }