|
|
@@ -205,9 +205,9 @@ class TransferForm extends Model {
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
- // 2. 如果发起人是普通会员,则只能转给自己推荐网的上级某个节点
|
|
|
- if (!$initiatorIsDec) {
|
|
|
- $sql =<<<SQL
|
|
|
+ // 2. 如果发起人是报单中心, 则可以转账给自己的推荐网下级
|
|
|
+ if ($initiatorIsDec == 1) {
|
|
|
+ $sql = <<<SQL
|
|
|
WITH recursive t_rec AS
|
|
|
(
|
|
|
SELECT
|
|
|
@@ -243,71 +243,68 @@ class TransferForm extends Model {
|
|
|
FROM
|
|
|
t_rec
|
|
|
SQL;
|
|
|
- $relationNodes = \Yii::$app->db->createCommand($sql)
|
|
|
- ->bindValue(':USER_NAME' , $fromUser['USER_NAME'])
|
|
|
+ // 查询接受者的所有上级,如果没有发起人,则不能转账
|
|
|
+ $relationNode = \Yii::$app->db->createCommand($sql)
|
|
|
+ ->bindValue(':USER_NAME', $this->toUserName)
|
|
|
->queryAll();
|
|
|
|
|
|
- $relationNodes = array_column($relationNodes, 'USER_NAME');
|
|
|
- unset($relationNodes[$fromUser['USER_NAME']]);
|
|
|
-
|
|
|
- if (!in_array($this->toUserName, $relationNodes)) {
|
|
|
- $this->addError($attribute, '转账失败:转入会员不是您的上级');
|
|
|
+ $relationNode = array_column($relationNode, 'USER_NAME');
|
|
|
+ if (!in_array($fromUser['USER_NAME'], $relationNode)) {
|
|
|
+ $this->addError($attribute, '转账失败:转入会员不是您的下级');
|
|
|
return null;
|
|
|
}
|
|
|
-
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
- // 3. 如果发起人是报单中心或者普通会员, 则可以转账给自己的推荐网下级
|
|
|
- // 判断接受者是否是自己的推荐网上级某个节点
|
|
|
- $sql =<<<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
|
|
|
+ // 3. 如果发起人是普通会员,则只能转给自己推荐网的某个节点
|
|
|
+ $sqlT =<<<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
|
|
|
|
|
|
- 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
|
|
|
- )
|
|
|
+ UNION ALL
|
|
|
+
|
|
|
SELECT
|
|
|
- *
|
|
|
+ t1.USER_ID,
|
|
|
+ U.USER_NAME,
|
|
|
+ t1.PARENT_UID,
|
|
|
+ U2.USER_NAME AS PARENT_NAME,
|
|
|
+ t2.node_level + 1 -- 结点层级
|
|
|
+
|
|
|
FROM
|
|
|
- t_rec
|
|
|
+ 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;
|
|
|
- // 查询接受者的所有上级,如果没有发起人,则不能转账
|
|
|
- $relationNode = \Yii::$app->db->createCommand($sql)
|
|
|
- ->bindValue(':USER_NAME' , $this->toUserName)
|
|
|
- ->queryAll();
|
|
|
-
|
|
|
- $relationNode = array_column($relationNode, 'USER_NAME');
|
|
|
+ // 上级
|
|
|
+ $relationNodeAll = \Yii::$app->db->createCommand($sqlT)
|
|
|
+ ->bindValue(':USER_NAME' , $this->toUserName)
|
|
|
+ ->queryAll();
|
|
|
+
|
|
|
+ $relationNodeAll = array_column($relationNodeAll, 'USER_NAME');
|
|
|
+ if (!in_array($fromUser['USER_NAME'], $relationNodeAll)) {
|
|
|
+ $this->addError($attribute, '转账失败:转入会员不是您的上级');
|
|
|
+ return null;
|
|
|
+ }
|
|
|
|
|
|
- LoggerTool::debug(json_encode(['$relationNode', $relationNode]));
|
|
|
- if (!in_array($fromUser['USER_NAME'], $relationNode)) {
|
|
|
- $this->addError($attribute, '转账失败:转入会员不是您的下级');
|
|
|
- return null;
|
|
|
- }
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
/**
|