|
|
@@ -0,0 +1,102 @@
|
|
|
+/*
|
|
|
+MySQL Backup
|
|
|
+Database: ng110test
|
|
|
+Backup Time: 2023-03-21 14:24:48
|
|
|
+*/
|
|
|
+
|
|
|
+SET FOREIGN_KEY_CHECKS=0;
|
|
|
+DROP PROCEDURE IF EXISTS `ng110test`.`CALC20_0`;
|
|
|
+CREATE DEFINER=`admin`@`%` 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;
|