| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- DROP PROCEDURE IF EXISTS `CALC20_0`;
- delimiter ;;
- CREATE PROCEDURE `CALC20_0`(IN PLAYER INT,IN `PCPID` INT)
- BEGIN
- DECLARE
- FLAG INT DEFAULT 0;
- DECLARE
- MUSERID,
- MMAXUSERID VARCHAR ( 50 );
- DECLARE
- MGPV DECIMAL ( 10, 2 );
- DECLARE
- ACHIEVEPV DECIMAL ( 10, 2 );
- DECLARE
- MC CURSOR FOR SELECT
- C.USER_ID
- FROM
- AR_BS_BONUS_103_CALC_NET C
- WHERE
- C.DIRECTLY_UNDER >= 2
- AND C.USER_TYPE = 0
- AND LAYER = PLAYER;
- DECLARE
- CONTINUE HANDLER FOR NOT FOUND
- SET FLAG = 1;-- 打开游标
- OPEN MC;-- 获取结果
- L2 :
- LOOP
- FETCH MC INTO MUSERID;
- IF
- FLAG = 1 THEN-- 当无法FETCH会触发HANDLER CONTINUE
- LEAVE L2;
-
- END IF;-- 这里是为了显示获取结果
- SELECT
- MIN( GPV ) INTO MGPV
- FROM
- AR_BS_BONUS_103_CALC_NET C
- WHERE
- C.INTRODUCER_ID = MUSERID
- AND C.USER_TYPE >= 10;
-
- SELECT
- MAX( USER_ID ) INTO MMAXUSERID
- FROM
- AR_BS_BONUS_103_CALC_NET C
- WHERE
- C.INTRODUCER_ID = MUSERID
- AND C.GPV = MGPV;
-
- SELECT
- ACHIEVE_PV INTO ACHIEVEPV
- FROM
- AR_EMPLOY_LEVEL
- WHERE ID ='E121497617216708615';
-
- IF MGPV >= ACHIEVEPV THEN
-
- UPDATE AR_BS_BONUS_103_CALC_NET C
- SET C.USER_TYPE = 20,
- C.GPV = ACHIEVEPV
- WHERE
- USER_ID = MUSERID;
-
- UPDATE AR_BS_BONUS_103_CALC_NET C
- SET C.GPV = MGPV - ACHIEVEPV
- WHERE
- USER_ID = MMAXUSERID;
-
- INSERT INTO AR_CALC_BONUS_BS_DETAIL_GPV(USER_ID,INTRODUCER_ID,GPV,PERIOD_NUM)
- VALUES(MMAXUSERID,MUSERID,ACHIEVEPV,PCPID);
-
- ELSE
-
- UPDATE AR_BS_BONUS_103_CALC_NET C
- SET C.USER_TYPE = 20,
- C.GPV = MGPV
- WHERE
- USER_ID = MUSERID;
-
- UPDATE AR_BS_BONUS_103_CALC_NET C
- SET C.GPV = 0
- WHERE
- USER_ID = MMAXUSERID;
-
- INSERT INTO AR_CALC_BONUS_BS_DETAIL_GPV(USER_ID,INTRODUCER_ID,GPV,PERIOD_NUM)
- VALUES(MMAXUSERID,MUSERID,MGPV,PCPID);
-
- END IF;
-
- END LOOP;
-
- -- 关闭游标
- CLOSE MC;
- END
- ;;
|