| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- DROP PROCEDURE IF EXISTS `CALC10`;
- delimiter ;;
- CREATE PROCEDURE `CALC10`(IN `PCPID` INT)
- BEGIN
- DECLARE
- MLAYER,
- MMAXLAYER INT;
- DECLARE
- MRATE,
- MLIMITPV DECIMAL ( 10, 2 );-- 查询第一个级别的限制以及等奖比例
- SELECT
- T.ACHIEVE_PV,
- T.BS_PERCENT / 100 INTO MLIMITPV,
- MRATE
- FROM
- AR_EMPLOY_LEVEL T
- WHERE
- T.ID = 'E121497617216708615';
-
- UPDATE AR_BS_BONUS_103_CALC SET PV = PV_UP_ZC + PV_FX;
-
- SELECT
- MAX( LAYER ) INTO MLAYER
- FROM
- AR_BS_BONUS_103_CALC
- WHERE
- PV > 0;
-
- SET MMAXLAYER := MLAYER;
- WHILE
- MLAYER >= 0 DO
- IF
- ( MLAYER < MMAXLAYER ) THEN-- 向上累计
- UPDATE AR_BS_BONUS_103_CALC T1
- INNER JOIN (
- SELECT
- INTRODUCER_ID,
- SUM( GPV10 ) GPV10
- FROM
- AR_BS_BONUS_103_CALC
- WHERE
- LAYER = MLAYER + 1
- AND USER_TYPE10 = 0
- AND GPV10 > 0
- GROUP BY
- INTRODUCER_ID
- ) T2 ON T1.USER_ID = T2.INTRODUCER_ID
- AND T1.LAYER = MLAYER
- SET T1.GPV10 = T2.GPV10;-- 没有升级的会员需要将自己的小组业绩清零
- UPDATE AR_BS_BONUS_103_CALC T
- SET T.GPV10 = 0
- WHERE
- T.GPV10 < MLIMITPV AND T.LAYER = MLAYER + 1 AND USER_TYPE10 = 0 AND T.GPV10 > 0;
-
- END IF;
- UPDATE AR_BS_BONUS_103_CALC T1
- SET T1.GPV10 = T1.GPV10 + T1.PV
- WHERE
- T1.LAYER = MLAYER
- AND T1.PV > 0;-- 是否达标 如果达标
- UPDATE AR_BS_BONUS_103_CALC T
- SET T.USER_TYPE10 = 10
- WHERE
- T.GPV10 >= MLIMITPV
- AND T.LAYER = MLAYER
- AND T.USER_TYPE10 = 0;
- IF
- ( MLAYER > 0 ) THEN-- 升级为蓝星A
- CALL CALCUPGARDE ( MLAYER );
-
- END IF;
-
- SET MLAYER := MLAYER - 1;
-
- END WHILE;
- UPDATE AR_BS_BONUS_103_CALC T
- SET T.BONUS10 = T.GPV10 * MRATE
- WHERE
- T.USER_TYPE10 = 10
- AND T.GPV10 > 0;
- UPDATE AR_BS_BONUS_103_CALC
- SET USER_TYPE = 0;
-
- INSERT INTO AR_CALC_BONUS_BS_DETAIL_BONUS ( USER_ID, INTRODUCER_ID, LAST_EMP_LV, ORI_BONUS, PV, RATE,PERIOD_NUM )
- SELECT USER_ID, NULL, 10, GPV10 * MRATE, GPV10, MRATE ,PCPID FROM AR_BS_BONUS_103_CALC WHERE USER_TYPE10 = 10
- AND GPV10 > 0;
- END
- ;;
|