TonyY пре 2 година
родитељ
комит
64e9bfc6e4
1 измењених фајлова са 0 додато и 1876 уклоњено
  1. 0 1876
      test_test.sql

+ 0 - 1876
test_test.sql

@@ -1,1876 +0,0 @@
--- Active: 1688690638810@@127.0.0.1@3306
-/*
- Navicat Premium Data Transfer
-
- Source Server         : NDS测试数据库
- Source Server Type    : MySQL
- Source Server Version : 80028
- Source Host           : 16.163.228.151:8051
- Source Schema         : test_test
-
- Target Server Type    : MySQL
- Target Server Version : 80028
- File Encoding         : 65001
-
- Date: 06/07/2023 17:24:33
-*/
-
-SET NAMES utf8mb4;
-SET FOREIGN_KEY_CHECKS = 0;
-
-
--- ----------------------------
--- Procedure structure for CALC10
--- ----------------------------
-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
-;;
-delimiter ;
-
--- ----------------------------
--- Procedure structure for CALC20
--- ----------------------------
-DROP PROCEDURE IF EXISTS `CALC20`;
-delimiter ;;
-CREATE PROCEDURE `CALC20`(IN `PCPID` INT)
-BEGIN
-	DECLARE
-		MLAYER,
-		MMAXLAYER,
-		MCOUNT INT;
-	DECLARE
-		MRATE,
-		MLIMITPV DECIMAL ( 10, 2 );
-	START TRANSACTION;-- 第一个级别的限制
-	SELECT
-		T.ACHIEVE_PV INTO MLIMITPV 
-	FROM
-		AR_EMPLOY_LEVEL T 
-	WHERE
-		T.ID = 'E121497617216708615';-- 第二个级别得奖的比例
-	SELECT
-		T.BS_PERCENT / 100 INTO MRATE 
-	FROM
-		AR_EMPLOY_LEVEL T 
-	WHERE
-		T.ID = '67BE5FE7857C216AE055736AECE8644D';
-		
-	UPDATE AR_BS_BONUS_103_CALC SET PV = PV_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( GPV ) GPV 
-				FROM
-					AR_BS_BONUS_103_CALC 
-				WHERE
-					LAYER = MLAYER + 1 
-					AND USER_TYPE = 0 
-					AND GPV > 0 
-				GROUP BY
-					INTRODUCER_ID 
-				) T2 ON T1.USER_ID = T2.INTRODUCER_ID 
-				AND T1.LAYER = MLAYER 
-				SET T1.GPV = T2.GPV;-- 没有升级的会员需要将自己的小组业绩清零
-			UPDATE AR_BS_BONUS_103_CALC T 
-			SET T.GPV = 0 
-			WHERE
-				T.GPV < MLIMITPV AND T.LAYER = MLAYER + 1 AND GPV > 0;
-			
-		END IF;
-		UPDATE AR_BS_BONUS_103_CALC T1 
-		SET T1.GPV = T1.GPV + T1.PV 
-		WHERE
-			T1.LAYER = MLAYER;-- 是否达标 如果达标
-		UPDATE AR_BS_BONUS_103_CALC T 
-		SET T.USER_TYPE = 10 
-		WHERE
-			T.GPV >= MLIMITPV 
-			AND T.LAYER = MLAYER;
-		
-		SET MLAYER := MLAYER - 1;
-		
-	END WHILE;
-	UPDATE AR_BS_BONUS_103_CALC 
-	SET GPV = 0 
-	WHERE
-		USER_TYPE = 0 
-		AND GPV > 0;
-	SELECT
-		MAX( LAYER ) INTO MLAYER 
-	FROM
-		AR_BS_BONUS_103_CALC 
-	WHERE
-		USER_TYPE > 0;
-	
-	SET MMAXLAYER := MLAYER;-- 添加至新网体页面
-	INSERT INTO AR_BS_BONUS_103_CALC_NET ( USER_ID, INTRODUCER_ID, CALC_PERIOD_ID, USER_TYPE, GPV, DIRECTLY_UNDER, LAYER, TEAM_GPV ) SELECT
-	USER_ID,
-	INTRODUCER_ID,
-	CALC_PERIOD_ID,
-	USER_TYPE,
-	GPV,
-	0,
-	LAYER,
-	0 
-	FROM
-		AR_BS_BONUS_103_CALC 
-	WHERE
-		LAYER <= MLAYER; -- 处理新的网体
-	DELETE FROM AR_BS_BONUS_103_CALC_NET WHERE LAYER = MLAYER AND USER_TYPE = 0; SET MLAYER := MLAYER - 1; WHILE MLAYER >= 0 DO-- 计算直属宽度
-		UPDATE AR_BS_BONUS_103_CALC_NET T1
-		INNER JOIN ( SELECT INTRODUCER_ID, COUNT( * ) SONS FROM AR_BS_BONUS_103_CALC_NET WHERE LAYER = MLAYER + 1 GROUP BY INTRODUCER_ID ) T2 ON T1.USER_ID = T2.INTRODUCER_ID 
-		AND T1.LAYER = MLAYER 
-		SET T1.DIRECTLY_UNDER = T2.SONS;-- 本人达标并且下属满足一个及以上的达标数升级为第二个级别
-		UPDATE AR_BS_BONUS_103_CALC_NET T1 
-		SET T1.USER_TYPE = 20 
-		WHERE
-			T1.LAYER = MLAYER 
-			AND USER_TYPE = 10 
-			AND DIRECTLY_UNDER >= 1;-- 计算本层达标人员
-		SELECT
-			COUNT( * ) INTO MCOUNT 
-		FROM
-			AR_BS_BONUS_103_CALC_NET C 
-		WHERE
-			C.DIRECTLY_UNDER >= 2 
-			AND C.USER_TYPE = 0 
-			AND LAYER = MLAYER;
-		IF
-			( MCOUNT > 0 ) THEN
-				CALL CALC20_0 ( MLAYER, PCPID );
-			
-		END IF;-- 删除未达标人员
-		CALL CALCDELNET ( MLAYER );
-		
-		SET MLAYER := MLAYER - 1;
-		
-	END WHILE;-- 计算GPV_4_CALC,会员级别
-	UPDATE AR_BS_BONUS_103_CALC C1
-	INNER JOIN AR_BS_BONUS_103_CALC_NET C2 ON C1.USER_ID = C2.USER_ID 
-	SET C1.GPV_4_CALC = C2.GPV,
-	C1.USER_TYPE = C2.USER_TYPE;-- 计算见习奖金
-	UPDATE AR_BS_BONUS_103_CALC C1
-	INNER JOIN ( SELECT INTRODUCER_ID, SUM( GPV ) ALL_GPV FROM AR_BS_BONUS_103_CALC_NET GROUP BY INTRODUCER_ID ) C2 ON C1.USER_ID = C2.INTRODUCER_ID 
-	AND C1.USER_TYPE = 20 
-	SET C1.BONUS20 = C2.ALL_GPV * MRATE;
-	COMMIT;
-	INSERT INTO AR_CALC_BONUS_BS_DETAIL_BONUS ( USER_ID, INTRODUCER_ID, LAST_EMP_LV, ORI_BONUS, PV, RATE, PERIOD_NUM ) SELECT
-	C1.USER_ID,
-	NULL,
-	20,
-	C2.ALL_GPV * MRATE,
-	C2.ALL_GPV,
-	MRATE,
-	PCPID 
-	FROM
-		AR_BS_BONUS_103_CALC C1
-		INNER JOIN ( SELECT INTRODUCER_ID, SUM( GPV ) ALL_GPV FROM AR_BS_BONUS_103_CALC_NET GROUP BY INTRODUCER_ID ) C2 ON C1.USER_ID = C2.INTRODUCER_ID 
-		AND C1.USER_TYPE = 20 
-		AND ALL_GPV > 0;
-
-END
-;;
-delimiter ;
-
--- ----------------------------
--- Procedure structure for CALC20_0
--- ----------------------------
-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
-		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;
-		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 LOOP;
-	CLOSE MC;
-
-END
-;;
-delimiter ;
-
--- ----------------------------
--- Procedure structure for CALCBLUE
--- ----------------------------
-DROP PROCEDURE IF EXISTS `CALCBLUE`;
-delimiter ;;
-CREATE PROCEDURE `CALCBLUE`(IN `PCPID` INT)
-LABEL: BEGIN
-DECLARE MCALCYEAR INT;
-DECLARE MISMONTH,MCALCMONTH,MISSENT TINYINT;
-
-START TRANSACTION;
--- 日志;
-DELETE FROM AR_BS_BONUS_103_CALC_EVENT ;-- WHERE CALC_PERIOD_ID >= PCPID;
-CALL CALCRECORD(-1,'开始',PCPID,NOW());
-COMMIT;
--- SELECT USER_ID INTO MISMONTH FROM ZR_USER;
-SELECT AP.IS_MONTH,AP.CALC_MONTH,AP.CALC_YEAR,AP.IS_SENT
-INTO MISMONTH,MCALCMONTH,MCALCYEAR,MISSENT
-FROM AR_PERIOD AP WHERE AP.PERIOD_NUM = PCPID;
-
-	-- 查看是否月结
-IF(MISMONTH  =  0 OR MISSENT = 1)THEN
-LEAVE LABEL;
-END IF;
-
-
--- 清除数据
-CALL CALCRECORD(1,'清除数据',PCPID,NOW());
-COMMIT;
-CALL CALCCLEAN(PCPID);
-COMMIT;
-
--- 初始化
-CALL CALCRECORD(2,'初始化',PCPID,NOW());
-COMMIT;
-CALL CALCINIT(PCPID,MCALCMONTH,MCALCYEAR);
-COMMIT;
-
-
--- 初始业绩
--- 3.蓝星奖
-CALL CALCRECORD(3,'蓝星奖',PCPID,NOW());
-COMMIT;
-CALL CALC10(PCPID);
-COMMIT;
-
--- 4.新网体
-CALL CALCRECORD(4,'新网体',PCPID,NOW());
-COMMIT;
-CALL CALC20(PCPID);
-COMMIT;
-
--- 5.升级主任
-CALL CALCRECORD(5,'升级主任',PCPID,NOW());
-COMMIT;
-CALL CALCUP30;
-COMMIT;
-
--- 6.计算主任自己第一层的总业绩
-CALL CALCRECORD(6,'计算主任自己第一层的总业绩',PCPID,NOW());
-COMMIT;
-CALL CALCTOTALGPV;
-COMMIT;
-
--- 7.计算平级奖业绩和级别
-CALL CALCRECORD(7,'计算平级奖业绩和级别',PCPID,NOW());
-COMMIT;
-CALL CALCLEVEL(PCPID);
-COMMIT;
-
--- 8.计算平级奖
-CALL CALCRECORD(8,'计算平级奖',PCPID,NOW());
-COMMIT;
-CALL CALCPJ(PCPID);
-COMMIT;
-
--- 9.积分
-CALL CALCRECORD(9,'积分',PCPID,NOW());
-COMMIT;
-CALL CALCPOINT;
-COMMIT;
-
--- 10.汇总
-CALL CALCRECORD(10,'汇总',PCPID,NOW());
-COMMIT;
-CALL CALCSUMMARY;
-COMMIT;
-
--- 11.记录总表
-CALL CALCRECORD(11,'记录总表',PCPID,NOW());
-COMMIT;
-CALL CALCKEEP(MCALCYEAR,MCALCMONTH);
-COMMIT;
-
--- 12.计算拨出比
-CALL CALCRECORD(12,'计算拨出比',PCPID,NOW());
-COMMIT;
-CALL CALCSTAT(PCPID);
-COMMIT;
-
-CALL CALCRECORD(13,'结束',PCPID,NOW());
-COMMIT;
-END
-;;
-delimiter ;
-
--- ----------------------------
--- Procedure structure for CALCCHECKING
--- ----------------------------
-DROP PROCEDURE IF EXISTS `CALCCHECKING`;
-delimiter ;;
-CREATE PROCEDURE `CALCCHECKING`(IN `PCPID` INT)
-LABEL : BEGIN-- 遍历数据结束标志
-	DECLARE
-		MCOLUMNNAME,
-		MVALUES,
-		MVALUES0,
-		MVALUES1,
-		MVALUES2 VARCHAR ( 100 );-- 定义预处理SQL语句
-	DECLARE
-		SQL_FOR_SELECT VARCHAR ( 2000 );
-	DECLARE
-		MCOUNT INT DEFAULT 0;
-	DECLARE
-		DONE INT DEFAULT FALSE;
-	DECLARE
-		MISMONTH,
-		MISSEND TINYINT;-- 游标
-	DECLARE
-		CUR_ACCOUNT CURSOR FOR SELECT
-		COLUMN_NAME 
-	FROM
-		INFORMATION_SCHEMA.COLUMNS 
-	WHERE
-		TABLE_NAME = 'AR_CALC_BONUS_BS_DETAIL' 
-		AND TABLE_SCHEMA = 'aikang_db_28' 
-		AND COLUMN_NAME NOT IN ( 'CALC_YEAR', 'CALC_MONTH', 'P_CALC_MONTH', 'CREATED_AT', 'ID', 'LAYER' ) 
-		AND DATA_TYPE IN ( 'DECIMAL', 'DOUBLE', 'INT' );-- 将结束标志绑定到游标
-	DECLARE
-		CONTINUE HANDLER FOR NOT FOUND 
-		SET DONE = TRUE;
-	START TRANSACTION;
-	SELECT
-		AP.IS_MONTH,
-		AP.IS_SENT INTO MISMONTH,
-		MISSEND 
-	FROM
-		AR_PERIOD AP 
-	WHERE
-		AP.PERIOD_NUM = PCPID;-- 查看是否月结
-	IF
-		( MISMONTH = 0 OR MISSEND = 1 ) THEN
-			LEAVE LABEL;
-		
-	END IF;-- 打开游标
-	DELETE 
-	FROM
-		AR_CALC_BONUS_BS_CHECKING 
-	WHERE
-		PERIOD_NUM >= PCPID;
-	OPEN CUR_ACCOUNT;-- 遍历
-	READ_LOOP :
-	LOOP-- 取值 取多个字段
-		FETCH NEXT 
-		FROM
-			CUR_ACCOUNT INTO MCOLUMNNAME;
-		IF
-			DONE THEN
-				LEAVE READ_LOOP;
-			
-		END IF;
-		
-		SET SQL_FOR_SELECT = CONCAT(
-			"SELECT COUNT(*) INTO @MVALUES0 FROM (SELECT IFNULL(A1.USER_ID,'-1') MAIN_ID,IFNULL(A2.USER_ID,'-1') TEST_ID,IFNULL(A1.",
-			MCOLUMNNAME,
-			",0) NAME1,IFNULL(A2.",
-			MCOLUMNNAME,
-			",0) NAME2 FROM AR_CALC_BONUS_BS_DETAIL A1 LEFT JOIN AR_CALC_BONUS_BS_DETAIL_CALC A2 ON A1.USER_ID = A2.USER_ID WHERE A1.PERIOD_NUM = ",
-			PCPID,
-			" AND A2.PERIOD_NUM = ",
-			PCPID,
-			" UNION SELECT IFNULL(A2.USER_ID,'-1') MAIN_ID,IFNULL(A1.USER_ID,'-1') TEST_ID,IFNULL(A2.",
-			MCOLUMNNAME,
-			",0) NAME1,IFNULL(A1.",
-			MCOLUMNNAME,
-			",0) NAME2 FROM AR_CALC_BONUS_BS_DETAIL_CALC A1 LEFT JOIN AR_CALC_BONUS_BS_DETAIL A2 ON A1.USER_ID = A2.USER_ID WHERE A1.PERIOD_NUM = ",
-			PCPID,
-			" AND A2.PERIOD_NUM = ",
-			PCPID,
-			") B WHERE B.MAIN_ID != B.TEST_ID OR ABS(B.NAME1-B.NAME2)>0.5" 
-		);-- 拼接查询SQL语句
-		
-		SET @SQL = SQL_FOR_SELECT;
-		PREPARE STMT 
-		FROM
-			@SQL;-- 预处理动态SQL语句
-		EXECUTE STMT;-- 执行SQL语句
-		DEALLOCATE PREPARE STMT;
-		
-		SET MVALUES0 := @MVALUES0;
-		
-		SET SQL_FOR_SELECT = CONCAT( "SELECT IFNULL(SUM(", MCOLUMNNAME, "),0) INTO @MVALUES1 FROM  AR_CALC_BONUS_BS_DETAIL  WHERE PERIOD_NUM = '", PCPID, "'" );-- 拼接查询SQL语句
-		
-		SET @SQL = SQL_FOR_SELECT;
-		PREPARE STMT 
-		FROM
-			@SQL;-- 预处理动态SQL语句
-		EXECUTE STMT;-- 执行SQL语句
-		DEALLOCATE PREPARE STMT;
-		
-		SET MVALUES1 := @MVALUES1;
-		
-		SET SQL_FOR_SELECT = CONCAT( "SELECT IFNULL(SUM(", MCOLUMNNAME, "),0) INTO @MVALUES2 FROM  AR_CALC_BONUS_BS_DETAIL_CALC  WHERE USER_ID != '0' AND PERIOD_NUM = '", PCPID, "'" );-- 拼接查询SQL语句
-		
-		SET @SQL = SQL_FOR_SELECT;
-		PREPARE STMT 
-		FROM
-			@SQL;-- 预处理动态SQL语句
-		EXECUTE STMT;-- 执行SQL语句
-		DEALLOCATE PREPARE STMT;
-		
-		SET MVALUES2 := @MVALUES2;
-		INSERT INTO AR_CALC_BONUS_BS_CHECKING ( PERIOD_NUM, COLUMN_NAME, DIFF_COUNT, MAIN_SUM, CALC_SUM, DIFF_SUM )
-		VALUES
-			(
-				PCPID,
-				MCOLUMNNAME,
-				MVALUES0,
-				MVALUES1,
-				MVALUES2,
-				ABS(
-					CONVERT (
-						MVALUES1,
-						DECIMAL ( 12, 2 ))- CONVERT (
-						MVALUES2,
-					DECIMAL ( 12, 2 ))));
-		COMMIT;
-		
-	END LOOP;
-	CLOSE CUR_ACCOUNT;
-	SELECT
-		COUNT(*) INTO MCOUNT 
-	FROM
-		AR_CALC_BONUS_BS_CHECKING 
-	WHERE
-		( DIFF_COUNT > 0 OR DIFF_SUM >= 1 ) 
-		AND COLUMN_NAME IN (
-			'USER_TYPE10',
-			'USER_TYPE',
-			'BONUS10',
-			'BONUS20',
-			'BONUS30',
-			'BONUS40',
-			'BONUS50',
-			'BONUS60',
-			'BONUS70',
-			'BONUS80',
-			'BONUS90',
-			'BONUS100',
-			'BONUS110',
-			'ORI_BONUS',
-			'AMOUNT',
-			'PRODUCT_POINT' 
-		);
-	IF
-		( MCOUNT = 0 ) THEN
-			UPDATE AR_CALC_BONUS_BS_STAT T 
-			SET T.CHECK_STATUS = 1 
-		WHERE
-			T.PERIOD_NUM = PCPID;
-		
-	END IF;
-	COMMIT;
-
-END
-;
-;;
-delimiter ;
-
--- ----------------------------
--- Procedure structure for CALCCLEAN
--- ----------------------------
-DROP PROCEDURE IF EXISTS `CALCCLEAN`;
-delimiter ;;
-CREATE PROCEDURE `CALCCLEAN`(IN `PCPID` INT)
-BEGIN-- 删除当期奖金
-	DELETE 
-	FROM
-		AR_BS_BONUS_103_CALC;
-	DELETE 
-	FROM
-		AR_BS_BONUS_103_TEST 
-	WHERE
-		CALC_PERIOD_ID >= PCPID;-- 使用的奖金表
-	DELETE 
-	FROM
-		AR_CALC_BONUS_BS 
-	WHERE
-		PERIOD_NUM >= PCPID;
-	DELETE 
-	FROM
-		AR_CALC_BONUS_BS_DETAIL 
-	WHERE
-		PERIOD_NUM >= PCPID;-- 删除当期网体
-	DELETE 
-	FROM
-		AR_BS_BONUS_103_CALC_NET;
-	DELETE 
-	FROM
-		AR_BS_BONUS_103_TEST_NET 
-	WHERE
-		CALC_PERIOD_ID >= PCPID;-- 删除拨出表
-	DELETE 
-	FROM
-		AR_CALC_BONUS_BS_STAT 
-	WHERE
-		PERIOD_NUM >= PCPID;-- 删除明细表
-	DELETE 
-	FROM
-		AR_CALC_BONUS_BS_DETAIL_BONUS 
-	WHERE
-		PERIOD_NUM >= PCPID;-- 删除日志
-	DELETE 
-	FROM
-		AR_CALC_BONUS_BS_DETAIL_GPV 
-	WHERE
-		PERIOD_NUM >= PCPID;
-
-END
-;;
-delimiter ;
-
--- ----------------------------
--- Procedure structure for CALCDELNET
--- ----------------------------
-DROP PROCEDURE IF EXISTS `CALCDELNET`;
-delimiter ;;
-CREATE PROCEDURE `CALCDELNET`(IN `PLAYER` INT)
-BEGIN
-	DECLARE
-		FLAG INT DEFAULT 0;
-	DECLARE
-		MUSERID,
-		MMAXUSERID,
-		MINTRODUCERID VARCHAR ( 50 );
-	/*DECLARE
-		MGPV DECIMAL ( 10, 2 );
-	DECLARE
-		DN CURSOR FOR SELECT
-		USER_ID 
-	FROM
-		AR_BS_BONUS_103_CALC_NET 
-	WHERE
-		LAYER = PLAYER 
-		AND USER_TYPE = 0;
-	DECLARE
-		CONTINUE HANDLER FOR NOT FOUND 
-		SET FLAG = 1;*/
-	START TRANSACTION;-- 打开游标
-	/*OPEN DN;-- 获取结果
-	L2 :
-	LOOP
-			FETCH DN INTO MUSERID;
-		IF
-			FLAG = 1 THEN-- 当无法FETCH会触发HANDLER CONTINUE
-				LEAVE L2;
-			
-		END IF;-- 查询需要删除会员的推荐人ID
-		SELECT
-			T.INTRODUCER_ID INTO MINTRODUCERID 
-		FROM
-			AR_BS_BONUS_103_CALC_NET T 
-		WHERE
-			T.USER_ID = MUSERID;-- 更改需要删除会员第一代的推荐人ID以及层数
-		UPDATE AR_BS_BONUS_103_CALC_NET T 
-		SET T.INTRODUCER_ID = MINTRODUCERID,
-		T.LAYER = T.LAYER - 1 
-		WHERE
-			T.INTRODUCER_ID = MUSERID;-- 关闭游标
-		
-	END LOOP;
-	CLOSE DN;*/
-	UPDATE AR_BS_BONUS_103_CALC_NET
-	SET DELETED = 1
-	WHERE
-		LAYER = PLAYER 
-		AND USER_TYPE = 0;
-	UPDATE AR_BS_BONUS_103_CALC_NET T1
-	INNER JOIN AR_BS_BONUS_103_CALC_NET T2
-	ON T1.INTRODUCER_ID = T2.USER_ID AND T1.LAYER = PLAYER+1 AND T2.LAYER =  PLAYER AND T2.USER_TYPE = 0
-	SET T1.INTRODUCER_ID = T2.INTRODUCER_ID,T1.LAYER = PLAYER;
-	DELETE
-	FROM
-		AR_BS_BONUS_103_CALC_NET 
-	WHERE
-		LAYER = PLAYER 
-		AND USER_TYPE = 0
-		AND DELETED = 1;
-	COMMIT;
-
-END
-;;
-delimiter ;
-
--- ----------------------------
--- Procedure structure for CALCINIT
--- ----------------------------
-DROP PROCEDURE IF EXISTS `CALCINIT`;
-delimiter ;;
-CREATE PROCEDURE `CALCINIT`(IN `PCPID` INT, IN `PCALCMONTH` TINYINT, IN `PCALCYEAR` INT)
-BEGIN
-    INSERT INTO AR_BS_BONUS_103_CALC (
-        LAST_DEC_LV,
-        LAST_EMP_LV,
-        LAST_STATUS,
-        USER_ID,
-        INTRODUCER_ID,
-        LAYER,
-        PV,
-        GPV10,
-        GPV,
-        GPV_4_CALC,
-        USER_TYPE10,
-        USER_TYPE,
-        BONUS10,
-        BONUS20,
-        BONUS30,
-        BONUS40,
-        BONUS50,
-        BONUS60,
-        BONUS70,
-        BONUS80,
-        BONUS90,
-        BONUS100,
-        BONUS110,
-        BONUS,
-        PRODUCT_POINT,
-        CALC_PERIOD_ID,
-				PV_ZC,
-				PV_FX,
-				PV_UP_ZC
-    ) SELECT
-    AU.LAST_DEC_LV,
-    AU.EMP_LV,
-    AU.STATUS,
-    AU.ID,
-    IFNULL( AURN.PARENT_UID, 0 ),
-    AURN.TOP_DEEP,
-    IFNULL( AO.PV, 0 ),
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    PCPID,
-		(SELECT
-            IFNULL( SUM( PV ), 0 ) PV
-        FROM
-            AR_PERF_ORDER 
-        WHERE
-            PERIOD_NUM IN ( SELECT PERIOD_NUM FROM AR_PERIOD WHERE CALC_YEAR = PCALCYEAR AND CALC_MONTH = PCALCMONTH)
-            AND USER_ID=AU.ID AND DEC_TYPE='ZC')PV_ZC,
-		(SELECT
-            IFNULL( SUM( PV ), 0 ) PV
-        FROM
-            AR_PERF_ORDER 
-        WHERE
-            PERIOD_NUM IN ( SELECT PERIOD_NUM FROM AR_PERIOD WHERE CALC_YEAR = PCALCYEAR AND CALC_MONTH = PCALCMONTH)
-            AND USER_ID=AU.ID AND DEC_TYPE='FX')PV_FX,
-		(SELECT
-            IFNULL( SUM( O.PV ), 0 ) PV
-        FROM
-            AR_PERF_ORDER O
-						LEFT JOIN AR_USER_RELATION_NEW R ON R.USER_ID = O.USER_ID
-        WHERE
-            O.PERIOD_NUM IN ( SELECT PERIOD_NUM FROM AR_PERIOD WHERE CALC_YEAR = PCALCYEAR AND CALC_MONTH = PCALCMONTH)
-            AND R.PARENT_UID=AU.ID AND O.DEC_TYPE='ZC')PV_UP_ZC
-    FROM
-        AR_USER AU
-        INNER JOIN AR_USER_RELATION_NEW AURN ON AU.ID = AURN.USER_ID
-        LEFT JOIN (
-        SELECT
-            USER_ID,
-            SUM( PV ) PV 
-        FROM
-            AR_PERF_ORDER 
-        WHERE
-            PERIOD_NUM IN ( SELECT PERIOD_NUM FROM AR_PERIOD WHERE CALC_YEAR = PCALCYEAR AND CALC_MONTH = PCALCMONTH ) 
-        GROUP BY
-            USER_ID 
-        ) AO ON AO.USER_ID = AU.ID 
-    WHERE
-        AU.DELETED = 0;
-
-END
-;;
-delimiter ;
-
--- ----------------------------
--- Procedure structure for CALCKEEP
--- ----------------------------
-DROP PROCEDURE IF EXISTS `CALCKEEP`;
-delimiter ;;
-CREATE PROCEDURE `CALCKEEP`(IN `PCALCYEAR` INT,IN `PCALCMONTH` INT)
-BEGIN
-	INSERT INTO AR_BS_BONUS_103_TEST SELECT
-	* 
-	FROM
-		AR_BS_BONUS_103_CALC;
-		
-		
-	INSERT INTO AR_BS_BONUS_103_TEST_NET SELECT
-	* 
-	FROM
-		AR_BS_BONUS_103_CALC_NET;
-		
-		
-	INSERT INTO AR_CALC_BONUS_BS (
-		USER_ID,
-		INTRODUCER_ID,
-		LAST_DEC_LV,
-		LAST_EMP_LV,
-		LAST_STATUS,
-		LEVEL_ID,
-		ORI_BONUS,
-		MANAGE_TAX,
-		AMOUNT,
-		PRODUCT_POINT,
-		PERIOD_NUM,
-		CALC_YEAR,
-		CALC_MONTH,
-		P_CALC_MONTH,
-		CREATED_AT ,
-		
-		ORI_BONUS_ABBR,
-        MANAGE_TAX_ABBR,
-        AMOUNT_ABBR,
-        ABBR_RECONSUME_POINTS,
-        ORI_BONUS_MNT,
-        MANAGE_TAX_MNT,
-        AMOUNT_MNT,
-        MNT_RECONSUME_POINTS
-		
-		
-	) SELECT
-	A.USER_ID,
-	A.INTRODUCER_ID,
-	A.LAST_DEC_LV,
-	A.LAST_EMP_LV,
-	A.LAST_STATUS,
-	B.ID,
-	IFNULL( A.BONUS, 0 ),
-	0,
-	IFNULL( A.BONUS, 0 ),
-	IFNULL( A.PRODUCT_POINT, 0 ),
-	CALC_PERIOD_ID,
-	PCALCYEAR,
-	PCALCYEAR*100+PCALCMONTH,
-	NOW(),
-	UNIX_TIMESTAMP(
-	NOW()),
-	
-	IFNULL(A.BONUSYJ,0),
-	0 ,
-	IFNULL(A.BONUSYJ,0),
-	0,
-	IFNULL(A.BONUSGL,0),
-	0,
-	IFNULL(A.BONUSGL,0),
-	0
-	
-	FROM
-		AR_BS_BONUS_103_CALC A
-		LEFT JOIN AR_EMPLOY_LEVEL B ON A.USER_TYPE = B.SORT * 10 
-	WHERE
-		A.BONUS > 0 
-		OR A.PRODUCT_POINT > 0;
-	INSERT INTO AR_CALC_BONUS_BS_DETAIL (
-		USER_ID,
-		INTRODUCER_ID,
-		LAST_DEC_LV,
-		LAST_EMP_LV,
-		LAST_STATUS,
-		LEVEL_ID,
-		ORI_BONUS,
-		MANAGE_TAX,
-		AMOUNT,
-		PRODUCT_POINT,
-		PERIOD_NUM,
-		LAYER,
-		PV,
-		GPV10,
-		GPV,
-		GPV_4_CALC,
-		USER_TYPE10,
-		USER_TYPE,
-		BONUS10,
-		BONUS20,
-		BONUS30,
-		BONUS40,
-		BONUS50,
-		BONUS60,
-		BONUS70,
-		BONUS80,
-		BONUS90,
-		BONUS100,
-		BONUS110,
-		CALC_YEAR,
-		CALC_MONTH,
-		P_CALC_MONTH,
-		CREATED_AT ,
-		
-		ORI_BONUS_ABBR,
-
-        AMOUNT_ABBR,
-        ORI_BONUS_MNT,
-
-        AMOUNT_MNT
-		
-		
-	) SELECT
-	USER_ID,
-	INTRODUCER_ID,
-	LAST_DEC_LV,
-	LAST_EMP_LV,
-	LAST_STATUS,
-	B.ID,
-	IFNULL( BONUS, 0 ),
-	0,
-	IFNULL( BONUS, 0 ),
-	IFNULL( PRODUCT_POINT, 0 ),
-	CALC_PERIOD_ID,
-	LAYER,
-	PV,
-	GPV10,
-	GPV,
-	GPV_4_CALC,
-	USER_TYPE10,
-	USER_TYPE,
-	BONUS10,
-	BONUS20,
-	BONUS30,
-	BONUS40,
-	BONUS50,
-	BONUS60,
-	BONUS70,
-	BONUS80,
-	BONUS90,
-	BONUS100,
-	BONUS110,
-	PCALCYEAR,
-	PCALCYEAR*100+PCALCMONTH,
-	NOW(),
-	UNIX_TIMESTAMP(
-	NOW()) ,
-	
-	IFNULL(A.BONUSYJ,0),
-
-	IFNULL(A.BONUSYJ,0),
-	IFNULL(A.BONUSGL,0),
-
-	IFNULL(A.BONUSGL,0)
-	FROM
-		AR_BS_BONUS_103_CALC A
-		LEFT JOIN ( SELECT ID, SORT FROM AR_EMPLOY_LEVEL ) B ON A.USER_TYPE = B.SORT * 10;
-
-END
-;;
-delimiter ;
-
--- ----------------------------
--- Procedure structure for CALCLEVEL
--- ----------------------------
-DROP PROCEDURE IF EXISTS `CALCLEVEL`;
-delimiter ;;
-CREATE PROCEDURE `CALCLEVEL`(IN `PCPID` INT)
-BEGIN
-	DECLARE
-		FLAG,
-		MLAYER,
-		MUSERTYPE INT DEFAULT 0;
-	DECLARE
-		MGPV,
-		MLIMITPV DECIMAL ( 10, 2 );
-	
-		DECLARE
-		MC CURSOR FOR SELECT
-		LAYER
-	FROM
-		AR_BS_BONUS_103_CALC_NET T 
-	WHERE
-		T.USER_TYPE = 30 GROUP BY LAYER ORDER BY LAYER DESC;
-	DECLARE
-		CONTINUE HANDLER FOR NOT FOUND 
-		SET FLAG = 1;
-	START TRANSACTION;-- 打开游标
-
-	OPEN MC;-- 获取结果
-	L2 :
-	LOOP
-			FETCH MC INTO MLAYER;
-		IF
-			FLAG = 1 THEN-- 当无法FETCH会触发HANDLER CONTINUE
-				LEAVE L2;
-			
-		END IF;
-		
--- 计算当前层数的奖金以及向上所贡献的奖金
-			CALL CALCLEVEL_ ( MLAYER ,PCPID);
-	END LOOP;
-	CLOSE MC;
-	/*WHILE
-			( MLAYER >= 0 ) DO-- 计算当前层数的奖金以及向上所贡献的奖金
-			CALL CALCLEVEL_ ( MLAYER );
-		
-		SET MLAYER := MLAYER - 1;
-		
-	END WHILE;*/-- 级别更新
-	
-
-	UPDATE AR_BS_BONUS_103_CALC C1
-	INNER JOIN AR_BS_BONUS_103_CALC_NET C2 ON C1.USER_ID = C2.USER_ID 
-	AND C1.USER_TYPE <> C2.USER_TYPE 
-	SET C1.USER_TYPE = C2.USER_TYPE;
-	
-	SELECT
-		T.ACHIEVE_PV INTO MLIMITPV 
-	FROM
-		AR_EMPLOY_LEVEL T 
-	WHERE
-		T.ID = 'E121497617216708615';
-
-	UPDATE AR_BS_BONUS_103_CALC SET USER_TYPE = 0 WHERE USER_TYPE = 10;
-	UPDATE AR_BS_BONUS_103_CALC SET USER_TYPE = 10 WHERE GPV10 >= MLIMITPV AND USER_TYPE = 0;
-	
-END
-;;
-delimiter ;
-
--- ----------------------------
--- Procedure structure for CALCLEVEL_
--- ----------------------------
-DROP PROCEDURE IF EXISTS `CALCLEVEL_`;
-delimiter ;;
-CREATE PROCEDURE `CALCLEVEL_`(IN `PLAYER` INT,IN `PCPID` INT)
-BEGIN
-    DECLARE
-        FLAG,
-        MLAYER,
-        MUSERTYPE INT DEFAULT 0;
-    DECLARE
-        MUSERID,
-        MBONUSID,
-        MNEWBONUSID VARCHAR ( 50 );
-    DECLARE
-        MGPV DECIMAL ( 10, 2 );
-    
-    DECLARE
-        MC CURSOR FOR SELECT
-        C.USER_ID,
-        C.TEAM_GPV 
-    FROM
-        AR_BS_BONUS_103_CALC_NET C 
-    WHERE
-        C.USER_TYPE >= 30 
-        AND LAYER = PLAYER;
-    
-    DECLARE
-        CONTINUE HANDLER FOR NOT FOUND 
-        SET FLAG = 1;
-    START TRANSACTION;
-    
-    -- 打开游标
-    OPEN MC;-- 获取结果
-    L2 :
-    LOOP
-            FETCH MC INTO MUSERID,
-            MGPV;
-        IF
-            FLAG = 1 THEN-- 当无法FETCH会触发HANDLER CONTINUE
-                LEAVE L2;
-            
-        END IF;-- 这里是为了显示获取结果
-        
-        SET MLAYER := 1;
-        
-        SET MBONUSID := MUSERID;
-        OUTER_LABEL :
-        WHILE
-                ( MLAYER <= 9 ) DO
-            IF
-                ( MLAYER > 1 ) THEN
-                    CALL CALCREFEREE ( MBONUSID, MNEWBONUSID );
-                IF
-                    ( ISNULL( MNEWBONUSID ) OR MNEWBONUSID = 0 ) THEN
-                        LEAVE OUTER_LABEL;
-                    ELSE 
-                        SET MBONUSID := MNEWBONUSID;
-                    
-                END IF;
-                
-            END IF;
-            
-            IF
-                ( MLAYER = 1 ) THEN
-                INSERT INTO AR_CALC_BONUS_BS_DETAIL_BONUS ( USER_ID, INTRODUCER_ID, LAST_EMP_LV, PV, PERIOD_NUM )
-                VALUES
-                    ( MBONUSID, NULL, 30, MGPV ,PCPID);
-                
-                ELSEIF ( MLAYER = 2 ) THEN
-                INSERT INTO AR_CALC_BONUS_BS_DETAIL_BONUS ( USER_ID, INTRODUCER_ID, LAST_EMP_LV, PV, PERIOD_NUM )
-                VALUES
-                    ( MBONUSID, MUSERID, 40, MGPV,PCPID);
-                
-                ELSEIF ( MLAYER = 3 ) THEN
-                INSERT INTO AR_CALC_BONUS_BS_DETAIL_BONUS ( USER_ID, INTRODUCER_ID, LAST_EMP_LV, PV,  PERIOD_NUM )
-                VALUES
-                    ( MBONUSID, MUSERID, 50, MGPV,  PCPID );
-                
-                ELSEIF ( MLAYER = 4 ) THEN
-                INSERT INTO AR_CALC_BONUS_BS_DETAIL_BONUS ( USER_ID, INTRODUCER_ID, LAST_EMP_LV, PV,  PERIOD_NUM )
-                VALUES
-                    ( MBONUSID, MUSERID, 60, MGPV,  PCPID );
-                
-                ELSEIF ( MLAYER = 5 ) THEN
-                INSERT INTO AR_CALC_BONUS_BS_DETAIL_BONUS ( USER_ID, INTRODUCER_ID, LAST_EMP_LV, PV,  PERIOD_NUM )
-                VALUES
-                    ( MBONUSID, MUSERID, 70, MGPV,  PCPID );
-                
-                ELSEIF ( MLAYER = 6 ) THEN
-                INSERT INTO AR_CALC_BONUS_BS_DETAIL_BONUS ( USER_ID, INTRODUCER_ID, LAST_EMP_LV, PV,  PERIOD_NUM )
-                VALUES
-                    ( MBONUSID, MUSERID, 80, MGPV,  PCPID );
-                
-                ELSEIF ( MLAYER = 7 ) THEN
-                INSERT INTO AR_CALC_BONUS_BS_DETAIL_BONUS ( USER_ID, INTRODUCER_ID, LAST_EMP_LV, PV,  PERIOD_NUM )
-                VALUES
-                    ( MBONUSID, MUSERID, 90, MGPV,  PCPID );
-                
-                ELSEIF ( MLAYER = 8 ) THEN
-                INSERT INTO AR_CALC_BONUS_BS_DETAIL_BONUS ( USER_ID, INTRODUCER_ID, LAST_EMP_LV, PV,  PERIOD_NUM )
-                VALUES
-                    ( MBONUSID, MUSERID, 100, MGPV,  PCPID );
-                
-                ELSEIF ( MLAYER = 9 ) THEN
-                INSERT INTO AR_CALC_BONUS_BS_DETAIL_BONUS ( USER_ID, INTRODUCER_ID, LAST_EMP_LV, PV,  PERIOD_NUM )
-                VALUES
-                    ( MBONUSID, MUSERID, 110, MGPV,  PCPID );
-                
-            END IF;-- 计算会员的级别
-            UPDATE AR_BS_BONUS_103_CALC_NET T 
-            SET T.USER_TYPE = ( MLAYER + 2 )* 10 
-            WHERE
-                T.USER_ID = MBONUSID 
-                AND USER_TYPE <=(
-                    MLAYER + 1 
-                )* 10;
-            
-            SET MLAYER := MLAYER + 1;
-            
-        END WHILE;-- 关闭游标
-        
-    END LOOP;
-    CLOSE MC;
-    COMMIT;
-
-END
-;;
-delimiter ;
-
--- ----------------------------
--- Procedure structure for CALCMAIN
--- ----------------------------
-DROP PROCEDURE IF EXISTS `CALCMAIN`;
-delimiter ;;
-CREATE PROCEDURE `CALCMAIN`(IN `PCPID` int,OUT `PRESULT` varchar(100))
-BEGIN
-	#Routine body goes here...
-DECLARE EXIT HANDLER FOR SQLEXCEPTION  
-SET PRESULT = 'FAIL';
- CALL CalcBlue(PCPID);
-SET PRESULT = 'SUCCESS';
-END
-;;
-delimiter ;
-
--- ----------------------------
--- Procedure structure for CALCPJ
--- ----------------------------
-DROP PROCEDURE IF EXISTS `CALCPJ`;
-delimiter ;;
-CREATE PROCEDURE `CALCPJ`(IN `PCPID` int)
-BEGIN
-DECLARE USERID VARCHAR (100);
-DECLARE TOTALPV,
-PV3,
-PV4,
-PV5,
-PV6,
-PV7,
-PV8,
-PV9,
-PV10,
-PV11,
-PERCENT1,
-PERCENT2,
-REWARD_BONUS1,
-REWARD_BONUS2,
-REWARD_BONUS_TOTAL DECIMAL (16,2);
-DECLARE RATE DECIMAL (16,8);
-DECLARE RATE2 DECIMAL (16,8);
-DECLARE DONE INT DEFAULT TRUE;
-DECLARE DONE2 INT DEFAULT TRUE;
-
-DECLARE CUR CURSOR FOR SELECT DISTINCT(USER_ID) FROM AR_CALC_BONUS_BS_DETAIL_BONUS WHERE PERIOD_NUM=PCPID AND LAST_EMP_LV>=30 AND PV>0;
-DECLARE CUR2 CURSOR FOR SELECT DISTINCT(USER_ID) FROM AR_CALC_BONUS_BS_DETAIL_BONUS WHERE PERIOD_NUM=PCPID AND LAST_EMP_LV>=30 AND PV>0;
-DECLARE CONTINUE HANDLER FOR NOT FOUND SET DONE = FALSE;
-
-
-SELECT IFNULL(MAX(INCREASE_PERCENT),0) INTO PERCENT1 FROM AR_BS_BONUS_REWARD_PARAMETER WHERE LEVEL_ID='67BE5FE7857C216AE055736AECE8644D';
-
-SELECT IFNULL(MAX(INCREASE_PERCENT),0) INTO PERCENT2 FROM AR_BS_BONUS_REWARD_PARAMETER WHERE LEVEL_ID='E121497617216708616';
-
--- 备份AR_BS_BONUS_REWARD_PARAMETER
-DELETE FROM AR_BS_BONUS_REWARD_PARAMETER_HISTROY WHERE PERIOD_NUM=PCPID;
-INSERT INTO AR_BS_BONUS_REWARD_PARAMETER_HISTROY (LEVEL_ID,LEVEL_NAME,INCREASE_PERCENT,PERIOD_NUM) (SELECT LEVEL_ID,LEVEL_NAME,INCREASE_PERCENT,PCPID FROM AR_BS_BONUS_REWARD_PARAMETER);
-
--- 平级奖计奖业绩
-SELECT SUM(PV) INTO TOTALPV FROM AR_CALC_BONUS_BS_DETAIL_BONUS WHERE PERIOD_NUM=PCPID AND LAST_EMP_LV>=30;
-
--- 平级奖奖金和业绩占比
-SELECT (SUM(PV)*0.15)/TOTALPV INTO RATE FROM AR_BS_BONUS_103_CALC;
-
-OPEN CUR;
-
-WHILE DONE DO
-
-FETCH CUR INTO USERID;
-
-IF DONE THEN
-
-SELECT SUM(PV) INTO PV3 FROM AR_CALC_BONUS_BS_DETAIL_BONUS WHERE PERIOD_NUM=PCPID AND USER_ID=USERID AND LAST_EMP_LV=30;
-UPDATE AR_BS_BONUS_103_CALC SET BONUS30 = PV3 * RATE WHERE USER_ID=USERID;
-
-END IF;
-
-END WHILE;
-
-CLOSE CUR;
-
-SELECT SUM(BONUS20)*PERCENT1 INTO REWARD_BONUS1 FROM AR_BS_BONUS_103_CALC WHERE USER_TYPE=20;
-
-SELECT SUM(BONUS30)*PERCENT2 INTO REWARD_BONUS2 FROM AR_BS_BONUS_103_CALC WHERE USER_TYPE=30;
-
--- 备份高级专员的加发奖金
-UPDATE AR_BS_BONUS_103_CALC SET REWARD20 = BONUS20*PERCENT1 WHERE USER_TYPE=20;
-
--- 备份主任的加发奖金
-UPDATE AR_BS_BONUS_103_CALC SET REWARD30 = BONUS30*PERCENT2 WHERE USER_TYPE=30;
-
--- 特别奖励加发总奖金
-SET REWARD_BONUS_TOTAL=REWARD_BONUS1+REWARD_BONUS2;
-
--- 平级奖奖金和业绩占比
-SELECT (SUM(PV)*0.15 -REWARD_BONUS_TOTAL)/TOTALPV INTO RATE2 FROM AR_BS_BONUS_103_CALC;
--- 备份平级奖比例
-UPDATE AR_BS_BONUS_103_CALC SET RATE = RATE2;
-
-SET DONE = TRUE;
-
-OPEN CUR2;
-
-WHILE DONE DO
-
-FETCH CUR2 INTO USERID;
-
-IF DONE THEN
-
-SELECT SUM(PV) INTO PV3 FROM AR_CALC_BONUS_BS_DETAIL_BONUS WHERE PERIOD_NUM=PCPID AND USER_ID=USERID AND LAST_EMP_LV=30;
-UPDATE AR_BS_BONUS_103_CALC SET BONUS30 = PV3 * RATE2 WHERE USER_ID=USERID;
-
-SELECT SUM(PV) INTO PV4 FROM AR_CALC_BONUS_BS_DETAIL_BONUS WHERE PERIOD_NUM=PCPID AND USER_ID=USERID AND LAST_EMP_LV=40;
-UPDATE AR_BS_BONUS_103_CALC SET BONUS40 = PV4 * RATE2 WHERE USER_ID=USERID;
-
-SELECT SUM(PV) INTO PV5 FROM AR_CALC_BONUS_BS_DETAIL_BONUS WHERE PERIOD_NUM=PCPID AND USER_ID=USERID AND LAST_EMP_LV=50;
-UPDATE AR_BS_BONUS_103_CALC SET BONUS50 = PV5 * RATE2 WHERE USER_ID=USERID;
-
-SELECT SUM(PV) INTO PV6 FROM AR_CALC_BONUS_BS_DETAIL_BONUS WHERE PERIOD_NUM=PCPID AND USER_ID=USERID AND LAST_EMP_LV=60;
-UPDATE AR_BS_BONUS_103_CALC SET BONUS60 = PV6 * RATE2 WHERE USER_ID=USERID;
-
-SELECT SUM(PV) INTO PV7 FROM AR_CALC_BONUS_BS_DETAIL_BONUS WHERE PERIOD_NUM=PCPID AND USER_ID=USERID AND LAST_EMP_LV=70;
-UPDATE AR_BS_BONUS_103_CALC SET BONUS70 = PV7 * RATE2 WHERE USER_ID=USERID;
-
-SELECT SUM(PV) INTO PV8 FROM AR_CALC_BONUS_BS_DETAIL_BONUS WHERE PERIOD_NUM=PCPID AND USER_ID=USERID AND LAST_EMP_LV=80;
-UPDATE AR_BS_BONUS_103_CALC SET BONUS80 = PV8 * RATE2 WHERE USER_ID=USERID;
-
-SELECT SUM(PV) INTO PV9 FROM AR_CALC_BONUS_BS_DETAIL_BONUS WHERE PERIOD_NUM=PCPID AND USER_ID=USERID AND LAST_EMP_LV=90;
-UPDATE AR_BS_BONUS_103_CALC SET BONUS90 = PV9 * RATE2 WHERE USER_ID=USERID;
-
-SELECT SUM(PV) INTO PV10 FROM AR_CALC_BONUS_BS_DETAIL_BONUS WHERE PERIOD_NUM=PCPID AND USER_ID=USERID AND LAST_EMP_LV=100;
-UPDATE AR_BS_BONUS_103_CALC SET BONUS100 = PV10 * RATE2 WHERE USER_ID=USERID;
-
-SELECT SUM(PV) INTO PV11 FROM AR_CALC_BONUS_BS_DETAIL_BONUS WHERE PERIOD_NUM=PCPID AND USER_ID=USERID AND LAST_EMP_LV=110;
-UPDATE AR_BS_BONUS_103_CALC SET BONUS110 = PV11 * RATE2 WHERE USER_ID=USERID;
-
-END IF;
-
-END WHILE;
-
-CLOSE CUR2;
-
--- 达到高级专员加发高级专员奖
-UPDATE AR_BS_BONUS_103_CALC SET BONUS20 = REWARD20 + BONUS20 WHERE USER_TYPE=20;
-
--- 达到主任加发主任奖
-UPDATE AR_BS_BONUS_103_CALC SET BONUS30 = REWARD30 + BONUS30 WHERE USER_TYPE=30;
-
-END
-;;
-delimiter ;
-
--- ----------------------------
--- Procedure structure for CALCPOINT
--- ----------------------------
-DROP PROCEDURE IF EXISTS `CALCPOINT`;
-delimiter ;;
-CREATE PROCEDURE `CALCPOINT`()
-BEGIN
-	DECLARE
-		MPOINTRATE DECIMAL ( 10, 2 );
-	SELECT 
-	VALUE
-		/ 100 INTO MPOINTRATE 
-	FROM
-		AR_CONFIG 
-	WHERE
-		CONFIG_NAME = 'bsNoPvPointsPercent';
-	UPDATE AR_BS_BONUS_103_CALC 
-	SET PRODUCT_POINT = PV * MPOINTRATE 
-	WHERE
-		USER_TYPE10 = 0 
-		AND USER_TYPE = 0 
-		AND PV > 0;
-
-END
-;;
-delimiter ;
-
--- ----------------------------
--- Procedure structure for CALCRECORD
--- ----------------------------
-DROP PROCEDURE IF EXISTS `CALCRECORD`;
-delimiter ;;
-CREATE PROCEDURE `CALCRECORD`(IN `PID` INT, IN `PEVENT` VARCHAR ( 255 ), IN `PCPID` INT, IN `PNOW` DATETIME)
-BEGIN
-	INSERT INTO AR_BS_BONUS_103_CALC_EVENT ( ID, EVENT, CREATION_TIME, CALC_PERIOD_ID )
-	VALUES
-		( PID, PEVENT, NOW(), PCPID );
-
-END
-;;
-delimiter ;
-
--- ----------------------------
--- Procedure structure for CALCREFEREE
--- ----------------------------
-DROP PROCEDURE IF EXISTS `CALCREFEREE`;
-delimiter ;;
-CREATE PROCEDURE `CALCREFEREE`(IN `PBONUSID` VARCHAR ( 50 ),
-	OUT `PNEWBONUSID` VARCHAR ( 50 ))
-BEGIN
-	DECLARE
-		MUSERID,
-		MBONUSID VARCHAR ( 50 );
-	DECLARE
-		MUSERTYPE INT;
-	
-	/*SET MUSERID := PBONUSID;
-	OUTER_LABEL :
-	WHILE
-			(
-			ISNULL( MBONUSID )) DO
-		SELECT
-			INTRODUCER_ID INTO MUSERID 
-		FROM
-			AR_BS_BONUS_103_CALC_NET T 
-		WHERE
-			T.USER_ID = MUSERID;
-		IF
-			( MUSERID = 0 ) THEN
-				
-				SET PNEWBONUSID := NULL;
-			LEAVE OUTER_LABEL;
-			
-		END IF;
-		SELECT
-			USER_TYPE INTO MUSERTYPE 
-		FROM
-			AR_BS_BONUS_103_CALC_NET T 
-		WHERE
-			T.USER_ID = MUSERID;
-		IF
-			( MUSERTYPE >= 30 ) THEN
-				
-				SET PNEWBONUSID := MUSERID;
-			LEAVE OUTER_LABEL;
-			
-		END IF;
-		
-	END WHILE;*/
-  SELECT INTRODUCER_ID30 INTO PNEWBONUSID FROM AR_BS_BONUS_103_CALC_NET WHERE USER_ID = PBONUSID;
-END
-;;
-delimiter ;
-
--- ----------------------------
--- Procedure structure for CALCSTAT
--- ----------------------------
-DROP PROCEDURE IF EXISTS `CALCSTAT`;
-delimiter ;;
-CREATE PROCEDURE `CALCSTAT`(IN `PCPID` INT)
-BEGIN
-	INSERT INTO AR_CALC_BONUS_BS_STAT (
-		PERIOD_NUM,
-		TOTAL_PV,
-		BONUS10,
-		PERCENT10,
-		BONUS20,
-		PERCENT20,
-		BONUS30,
-		PERCENT30,
-		BONUS40,
-		PERCENT40,
-		BONUS50,
-		PERCENT50,
-		BONUS60,
-		PERCENT60,
-		BONUS70,
-		PERCENT70,
-		BONUS80,
-		PERCENT80,
-		BONUS90,
-		PERCENT90,
-		BONUS100,
-		PERCENT100,
-		BONUS110,
-		PERCENT110,
-		BONUS,
-		PERCENT,
-		CHECK_STATUS ,
-		BONUS_ABBR,
-        BONUS_ABBR_PERCENT,
-        BONUS_MNT,
-        BONUS_MNT_PERCENT
-	) SELECT
-	PCPID,
-	SUM( PV ),
-	SUM( BONUS10 ),
-	0,
-	SUM( BONUS20 ),
-	0,
-	SUM( BONUS30 ),
-	0,
-	SUM( BONUS40 ),
-	0,
-	SUM( BONUS50 ),
-	0,
-	SUM( BONUS60 ),
-	0,
-	SUM( BONUS70 ),
-	0,
-	SUM( BONUS80 ),
-	0,
-	SUM( BONUS90 ),
-	0,
-	SUM( BONUS100 ),
-	0,
-	SUM( BONUS110 ),
-	0,
-	SUM( BONUS ),
-	0,
-	0 ,
-	SUM( BONUSYJ),
-	0,
-	SUM(BONUSGL),
-	0
-	FROM
-		AR_BS_BONUS_103_CALC;
-	UPDATE AR_CALC_BONUS_BS_STAT 
-	SET PERCENT10 = BONUS10 / TOTAL_PV,
-	PERCENT20 = BONUS20 / TOTAL_PV,
-	PERCENT30 = BONUS30 / TOTAL_PV,
-	PERCENT40 = BONUS40 / TOTAL_PV,
-	PERCENT50 = BONUS50 / TOTAL_PV,
-	PERCENT60 = BONUS60 / TOTAL_PV,
-	PERCENT70 = BONUS70 / TOTAL_PV,
-	PERCENT80 = BONUS80 / TOTAL_PV,
-	PERCENT90 = BONUS90 / TOTAL_PV,
-	PERCENT100 = BONUS100 / TOTAL_PV,
-	PERCENT110 = BONUS110 / TOTAL_PV,
-	PERCENT = BONUS / TOTAL_PV,
-	BONUS_ABBR_PERCENT = BONUS_ABBR / TOTAL_PV,
-	BONUS_MNT_PERCENT = BONUS_MNT /TOTAL_PV
-	WHERE
-		PERIOD_NUM = PCPID 
-		AND TOTAL_PV > 0;
-
-END
-;;
-delimiter ;
-
--- ----------------------------
--- Procedure structure for CALCSUMMARY
--- ----------------------------
-DROP PROCEDURE IF EXISTS `CALCSUMMARY`;
-delimiter ;;
-CREATE PROCEDURE `CALCSUMMARY`()
-BEGIN
-	UPDATE AR_BS_BONUS_103_CALC T 
-	SET T.BONUS = BONUS10 + BONUS20 + BONUS30 + BONUS40 + BONUS50 + BONUS60 + BONUS70 + BONUS80 + BONUS90 + BONUS100 + BONUS110,T.BONUSYJ = BONUS10 + BONUS20,T.BONUSGL = BONUS30 + BONUS40 +BONUS50 + BONUS60 + BONUS70 +BONUS80 +BONUS90 +BONUS100 + BONUS110 
-	WHERE
-		T.BONUS10 > 0 
-		OR T.BONUS20 > 0 
-		OR T.BONUS30 > 0 
-		OR T.BONUS40 > 0 
-		OR T.BONUS50 > 0 
-		OR T.BONUS60 > 0 
-		OR T.BONUS70 > 0 
-		OR T.BONUS80 > 0 
-		OR T.BONUS90 > 0 
-		OR T.BONUS100 > 0 
-		OR T.BONUS110 > 0;
-	UPDATE AR_BS_BONUS_103_CALC T 
-	SET GPV = 0 
-	WHERE
-		T.INTRODUCER_ID = '0' 
-		AND USER_TYPE = 0;
-
-END
-;;
-delimiter ;
-
--- ----------------------------
--- Procedure structure for CALCTOTALGPV
--- ----------------------------
-DROP PROCEDURE IF EXISTS `CALCTOTALGPV`;
-delimiter ;;
-CREATE PROCEDURE `CALCTOTALGPV`()
-BEGIN
-	DECLARE
-		MLAYER,
-		MMINLAYER,
-		MUSERTYPE INT DEFAULT 0;
-	DECLARE
-		MUSERID,
-		MMAXUSERID VARCHAR ( 50 );
-	DECLARE
-		MGPV DECIMAL ( 10, 2 );
-	SELECT
-		MAX( LAYER ) INTO MLAYER 
-	FROM
-		AR_BS_BONUS_103_CALC_NET 
-	WHERE
-		GPV > 0;
-	SELECT
-		MIN( LAYER ) INTO MMINLAYER 
-	FROM
-		AR_BS_BONUS_103_CALC_NET 
-	WHERE
-		USER_TYPE = 30;
-	UPDATE AR_BS_BONUS_103_CALC_NET T1
-	INNER JOIN AR_BS_BONUS_103_CALC_NET T2 ON IFNULL( T1.INTRODUCER_ID, '0' ) = T2.USER_ID 
-	AND T1.USER_TYPE = 30 
-	AND T2.USER_TYPE = 30 
-	SET T1.INTRODUCER_ID30 = T2.USER_ID;
-	WHILE
-			MLAYER > MMINLAYER DO
-			CALL CALCTOTALGPV_ ( MLAYER, MMINLAYER );
-		
-		SET MLAYER = MLAYER - 1;
-		
-	END WHILE;
-
-END
-;;
-delimiter ;
-
--- ----------------------------
--- Procedure structure for CALCTOTALGPV_
--- ----------------------------
-DROP PROCEDURE IF EXISTS `CALCTOTALGPV_`;
-delimiter ;;
-CREATE PROCEDURE `CALCTOTALGPV_`(IN `PLAYER` INT, -- 第几层
-	IN `PMINLAYER` INT)
-BEGIN
-	DECLARE
-		FLAG,
-		MLAYER,
-		MINTLAYER,
-		MUSERTYPE,
-		MINTTYPE INT DEFAULT 0;
-	DECLARE
-		MGPV DECIMAL ( 10, 2 );
-	DECLARE
-		MUSERID,
-		MUSERINTID,
-		MINTUSERID,
-		MINTRODUCERID VARCHAR ( 50 );
-	DECLARE
-		MC CURSOR FOR SELECT
-		C.USER_ID,
-		C.INTRODUCER_ID,
-		C.USER_TYPE,
-		C.GPV 
-	FROM
-		(
-		SELECT
-			USER_ID,
-			IFNULL( INTRODUCER_ID, '0' ) INTRODUCER_ID,
-			USER_TYPE,
-			GPV 
-		FROM
-			AR_BS_BONUS_103_CALC_NET 
-		WHERE
-			LAYER = PLAYER 
-			AND GPV > 0 
-			OR ( GPV = 0 AND USER_TYPE = 30 ) 
-		ORDER BY
-			USER_ID DESC 
-		) C;
-	DECLARE
-		CONTINUE HANDLER FOR NOT FOUND 
-		SET FLAG = 1;
-	START TRANSACTION;-- 打开游标
-	OPEN MC;-- 获取结果
-	L2 :
-	LOOP
-			FETCH MC INTO MUSERID,
-			MUSERINTID,
-			MUSERTYPE,
-			MGPV;
-		IF
-			FLAG = 1 THEN-- 当无法FETCH会触发HANDLER CONTINUE
-				LEAVE L2;
-			
-		END IF;
-		SET MLAYER = PLAYER;
-		
-		SET MINTUSERID = MUSERINTID;
-		IF
-			( MINTUSERID != '0' ) THEN
-				OUTLABEL :
-			WHILE
-					MLAYER > PMINLAYER DO
-				SELECT
-					INTRODUCER_ID,
-					USER_TYPE,
-					LAYER INTO MINTRODUCERID,
-					MINTTYPE,
-					MLAYER 
-				FROM
-					AR_BS_BONUS_103_CALC_NET 
-				WHERE
-					USER_ID = MINTUSERID;
-				IF
-					( MINTUSERID != MUSERINTID AND MINTTYPE = 30 ) THEN
-						UPDATE AR_BS_BONUS_103_CALC_NET 
-						SET TEAM_GPV = TEAM_GPV + MGPV 
-					WHERE
-						USER_ID = MINTUSERID;
-					IF
-						( MUSERTYPE = 30 ) THEN
-							UPDATE AR_BS_BONUS_103_CALC_NET 
-							SET INTRODUCER_ID30 = MINTUSERID 
-						WHERE
-							USER_ID = MUSERID 
-							AND INTRODUCER_ID30 IS NULL;
-						
-					END IF;
-					LEAVE OUTLABEL;
-					
-				END IF;
-				
-				SET MINTUSERID = MINTRODUCERID;
-				
-			END WHILE;
-			
-		END IF;-- 关闭游标
-		
-	END LOOP;
-	CLOSE MC;
-	COMMIT;
-
-END
-;;
-delimiter ;
-
--- ----------------------------
--- Procedure structure for CALCUP30
--- ----------------------------
-DROP PROCEDURE IF EXISTS `CALCUP30`;
-delimiter ;;
-CREATE PROCEDURE `CALCUP30`()
-BEGIN
-	START TRANSACTION;
-	UPDATE AR_BS_BONUS_103_CALC_NET T1 
-	SET T1.USER_TYPE = 30 
-	WHERE
-		USER_TYPE >= 10 
-		AND DIRECTLY_UNDER >= 3;
-	COMMIT;
-
-END
-;;
-delimiter ;
-
--- ----------------------------
--- Procedure structure for CALCUPGARDE
--- ----------------------------
-DROP PROCEDURE IF EXISTS `CALCUPGARDE`;
-delimiter ;;
-CREATE PROCEDURE `CALCUPGARDE`(IN `PLAYER` INT)
-BEGIN
-	DECLARE
-		MLAYER,
-		MCOUNT,
-		MCOUNT1,
-		MCOUNT2 INT;
-	
-	SET MLAYER := PLAYER;
-	SELECT
-		COUNT(*) INTO MCOUNT 
-	FROM
-		AR_BS_BONUS_103_CALC T 
-	WHERE
-		T.LAYER = MLAYER 
-		AND USER_TYPE10 = 10 
-		AND USER_TYPE = 0;
-	IF
-		( MCOUNT > 0 ) THEN
-			BREAKLABLE :
-		WHILE
-				MLAYER > 0 DO
-			SELECT
-				COUNT(*) INTO MCOUNT1 
-			FROM
-				AR_BS_BONUS_103_CALC T1 
-			WHERE
-				T1.USER_TYPE10 = 10 
-				AND T1.LAYER = MLAYER - 1;
-			UPDATE AR_BS_BONUS_103_CALC T1
-			INNER JOIN ( SELECT INTRODUCER_ID FROM AR_BS_BONUS_103_CALC WHERE LAYER = MLAYER AND USER_TYPE10 = 10 GROUP BY INTRODUCER_ID ) T2 ON T1.USER_ID = T2.INTRODUCER_ID 
-			AND T1.USER_TYPE10 = 0 
-			AND T1.LAYER = MLAYER - 1 
-			SET T1.USER_TYPE10 = 10,
-			T1.USER_TYPE = 10;
-			SELECT
-				COUNT(*) INTO MCOUNT2 
-			FROM
-				AR_BS_BONUS_103_CALC T1 
-			WHERE
-				T1.USER_TYPE10 = 10 
-				AND T1.LAYER = MLAYER - 1;
-			IF
-				( MCOUNT1 = MCOUNT2 ) THEN
-					LEAVE BREAKLABLE;
-				
-			END IF;
-			
-			SET MLAYER := MLAYER - 1;
-			
-		END WHILE;
-		
-	END IF;
-
-END
-;;
-delimiter ;
-
--- ----------------------------
--- Procedure structure for UPPERCASE
--- ----------------------------
-DROP PROCEDURE IF EXISTS `UPPERCASE`;
-delimiter ;;
-CREATE PROCEDURE `UPPERCASE`(IN DBNAME VARCHAR(200))
-BEGIN 
-  
-DECLARE DONE INT DEFAULT 0;  
-  
-DECLARE OLDNAME VARCHAR(200);  
-  
-DECLARE CUR CURSOR FOR SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DBNAME;  
-  
-DECLARE CONTINUE HANDLER FOR NOT FOUND SET DONE = 1;  
-  
-OPEN CUR;  
-  
-REPEAT  
-  
-FETCH CUR INTO OLDNAME;  
-  
-SET @NEWNAME = UPPER(OLDNAME);  
-SET @ISNOTSAME = @NEWNAME <> BINARY OLDNAME;   
-IF NOT DONE && @ISNOTSAME THEN   
-SET @SQL = CONCAT('RENAME TABLE `',OLDNAME,'` TO `', LOWER(@NEWNAME), '_TMP` ');   
-PREPARE TMPSTMT FROM @SQL;   
-EXECUTE TMPSTMT;  
-
-SET @SQL = CONCAT('RENAME TABLE `',LOWER(@NEWNAME),'_TMP` TO `',@NEWNAME, '`');   
-PREPARE TMPSTMT FROM @SQL;   
-EXECUTE TMPSTMT; 
-  
-DEALLOCATE PREPARE TMPSTMT;  
-  
-END IF;   
-UNTIL DONE END REPEAT;   
-CLOSE CUR;   
-END
-;;
-delimiter ;
-
-SET FOREIGN_KEY_CHECKS = 1;