|
|
@@ -0,0 +1,2715 @@
|
|
|
+-- MariaDB dump 10.19 Distrib 10.7.4-MariaDB, for Linux (x86_64)
|
|
|
+--
|
|
|
+-- Host: ngds-db-live.cdehazle30lc.ap-east-1.rds.amazonaws.com Database: coco_milk_0524
|
|
|
+-- ------------------------------------------------------
|
|
|
+-- Server version 10.6.7-MariaDB-log
|
|
|
+
|
|
|
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
|
|
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
|
|
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
|
|
+/*!40101 SET NAMES utf8mb4 */;
|
|
|
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
|
|
+/*!40103 SET TIME_ZONE='+00:00' */;
|
|
|
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
|
|
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
|
|
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
|
|
+
|
|
|
+--
|
|
|
+-- Dumping routines for database 'coco_milk_0524'
|
|
|
+--
|
|
|
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
|
|
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
|
|
|
+/*!50003 DROP PROCEDURE IF EXISTS `CALC10` */;
|
|
|
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
|
|
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
|
|
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
|
|
+/*!50003 SET character_set_client = utf8mb4 */ ;
|
|
|
+/*!50003 SET character_set_results = utf8mb4 */ ;
|
|
|
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
|
|
+DELIMITER ;;
|
|
|
+CREATE DEFINER=`babysbreath`@`%` 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';
|
|
|
+ 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 < T.ACHIEVE_PERF_PV 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 >= T.ACHIEVE_PERF_PV
|
|
|
+ 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 ;
|
|
|
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
|
|
+/*!50003 SET character_set_client = @saved_cs_client */ ;
|
|
|
+/*!50003 SET character_set_results = @saved_cs_results */ ;
|
|
|
+/*!50003 SET collation_connection = @saved_col_connection */ ;
|
|
|
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
|
|
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
|
|
|
+/*!50003 DROP PROCEDURE IF EXISTS `CALC20` */;
|
|
|
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
|
|
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
|
|
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
|
|
+/*!50003 SET character_set_client = utf8mb4 */ ;
|
|
|
+/*!50003 SET character_set_results = utf8mb4 */ ;
|
|
|
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
|
|
+DELIMITER ;;
|
|
|
+CREATE DEFINER=`babysbreath`@`%` 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';
|
|
|
+ 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 < T.ACHIEVE_PERF_PV 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 >= T.ACHIEVE_PERF_PV
|
|
|
+ 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 ;
|
|
|
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
|
|
+/*!50003 SET character_set_client = @saved_cs_client */ ;
|
|
|
+/*!50003 SET character_set_results = @saved_cs_results */ ;
|
|
|
+/*!50003 SET collation_connection = @saved_col_connection */ ;
|
|
|
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
|
|
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ;
|
|
|
+/*!50003 DROP PROCEDURE IF EXISTS `CALC20_0` */;
|
|
|
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
|
|
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
|
|
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
|
|
+/*!50003 SET character_set_client = utf8mb4 */ ;
|
|
|
+/*!50003 SET character_set_results = utf8mb4 */ ;
|
|
|
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
|
|
+DELIMITER ;;
|
|
|
+CREATE DEFINER=`babysbreath`@`%` 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 ;
|
|
|
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
|
|
+/*!50003 SET character_set_client = @saved_cs_client */ ;
|
|
|
+/*!50003 SET character_set_results = @saved_cs_results */ ;
|
|
|
+/*!50003 SET collation_connection = @saved_col_connection */ ;
|
|
|
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
|
|
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ;
|
|
|
+/*!50003 DROP PROCEDURE IF EXISTS `CALCBLUE` */;
|
|
|
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
|
|
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
|
|
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
|
|
+/*!50003 SET character_set_client = utf8mb4 */ ;
|
|
|
+/*!50003 SET character_set_results = utf8mb4 */ ;
|
|
|
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
|
|
+DELIMITER ;;
|
|
|
+CREATE DEFINER=`babysbreath`@`%` 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 CALCPOINT;
|
|
|
+COMMIT;
|
|
|
+
|
|
|
+-- 9.汇总
|
|
|
+CALL CALCRECORD(9,'汇总',PCPID,NOW());
|
|
|
+COMMIT;
|
|
|
+CALL CALCSUMMARY;
|
|
|
+COMMIT;
|
|
|
+
|
|
|
+-- 10.记录总表
|
|
|
+CALL CALCRECORD(10,'记录总表',PCPID,NOW());
|
|
|
+COMMIT;
|
|
|
+CALL CALCKEEP(MCALCYEAR,MCALCMONTH);
|
|
|
+COMMIT;
|
|
|
+
|
|
|
+-- 11.计算拨出比
|
|
|
+CALL CALCRECORD(11,'计算拨出比',PCPID,NOW());
|
|
|
+COMMIT;
|
|
|
+CALL CALCSTAT(PCPID);
|
|
|
+COMMIT;
|
|
|
+
|
|
|
+CALL CALCRECORD(12,'结束',PCPID,NOW());
|
|
|
+COMMIT;
|
|
|
+END ;;
|
|
|
+DELIMITER ;
|
|
|
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
|
|
+/*!50003 SET character_set_client = @saved_cs_client */ ;
|
|
|
+/*!50003 SET character_set_results = @saved_cs_results */ ;
|
|
|
+/*!50003 SET collation_connection = @saved_col_connection */ ;
|
|
|
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
|
|
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ;
|
|
|
+/*!50003 DROP PROCEDURE IF EXISTS `CALCCHECKING` */;
|
|
|
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
|
|
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
|
|
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
|
|
+/*!50003 SET character_set_client = utf8mb4 */ ;
|
|
|
+/*!50003 SET character_set_results = utf8mb4 */ ;
|
|
|
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
|
|
+DELIMITER ;;
|
|
|
+CREATE DEFINER=`babysbreath`@`%` 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 ;
|
|
|
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
|
|
+/*!50003 SET character_set_client = @saved_cs_client */ ;
|
|
|
+/*!50003 SET character_set_results = @saved_cs_results */ ;
|
|
|
+/*!50003 SET collation_connection = @saved_col_connection */ ;
|
|
|
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
|
|
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ;
|
|
|
+/*!50003 DROP PROCEDURE IF EXISTS `CALCCLEAN` */;
|
|
|
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
|
|
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
|
|
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
|
|
+/*!50003 SET character_set_client = utf8mb4 */ ;
|
|
|
+/*!50003 SET character_set_results = utf8mb4 */ ;
|
|
|
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
|
|
+DELIMITER ;;
|
|
|
+CREATE DEFINER=`babysbreath`@`%` 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 ;
|
|
|
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
|
|
+/*!50003 SET character_set_client = @saved_cs_client */ ;
|
|
|
+/*!50003 SET character_set_results = @saved_cs_results */ ;
|
|
|
+/*!50003 SET collation_connection = @saved_col_connection */ ;
|
|
|
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
|
|
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ;
|
|
|
+/*!50003 DROP PROCEDURE IF EXISTS `CALCDELNET` */;
|
|
|
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
|
|
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
|
|
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
|
|
+/*!50003 SET character_set_client = utf8mb4 */ ;
|
|
|
+/*!50003 SET character_set_results = utf8mb4 */ ;
|
|
|
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
|
|
+DELIMITER ;;
|
|
|
+CREATE DEFINER=`babysbreath`@`%` 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 ;
|
|
|
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
|
|
+/*!50003 SET character_set_client = @saved_cs_client */ ;
|
|
|
+/*!50003 SET character_set_results = @saved_cs_results */ ;
|
|
|
+/*!50003 SET collation_connection = @saved_col_connection */ ;
|
|
|
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
|
|
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
|
|
|
+/*!50003 DROP PROCEDURE IF EXISTS `CALCINIT` */;
|
|
|
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
|
|
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
|
|
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
|
|
+/*!50003 SET character_set_client = utf8mb4 */ ;
|
|
|
+/*!50003 SET character_set_results = utf8mb4 */ ;
|
|
|
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
|
|
+DELIMITER ;;
|
|
|
+CREATE DEFINER=`babysbreath`@`%` PROCEDURE `CALCINIT`(IN `PCPID` INT, IN `PCALCMONTH` TINYINT, IN `PCALCYEAR` INT)
|
|
|
+BEGIN
|
|
|
+
|
|
|
+ DECLARE
|
|
|
+ AC_USER_NO INT; -- 邀请会员达标数
|
|
|
+ DECLARE
|
|
|
+ MLIMITPV, -- 邀请会员不及格达标PV
|
|
|
+ AC_PERF_PV DECIMAL ( 10, 2 ); -- 邀请会员及格达标PV
|
|
|
+
|
|
|
+ -- 查询第一个级别的邀请会员数、达标PV值以及等奖比例
|
|
|
+ SELECT
|
|
|
+ T.ACHIEVE_PV,
|
|
|
+ T.ACHIEVE_PERF_PV,
|
|
|
+ T.ACHIEVE_MEMBER_NUM
|
|
|
+ INTO MLIMITPV, AC_PERF_PV, AC_USER_NO
|
|
|
+ FROM
|
|
|
+ AR_EMPLOY_LEVEL T
|
|
|
+ WHERE
|
|
|
+ T.ID = 'E121497617216708615';
|
|
|
+
|
|
|
+ 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,
|
|
|
+ ACHIEVE_MEMBER_NUM,
|
|
|
+ ACHIEVE_PERF_PV
|
|
|
+ ) 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,
|
|
|
+ IFNULL(DO.ACHIEVE_MEMBER_NUM, 0),
|
|
|
+ IF(DO.ACHIEVE_MEMBER_NUM >= AC_USER_NO, AC_PERF_PV, MLIMITPV)
|
|
|
+ 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
|
|
|
+ LEFT JOIN (
|
|
|
+ SELECT
|
|
|
+ R.PARENT_UID,
|
|
|
+ COUNT(R.USER_ID) AS ACHIEVE_MEMBER_NUM
|
|
|
+ FROM
|
|
|
+ AR_PERF_ORDER O
|
|
|
+ INNER JOIN AR_USER_RELATION_NEW R ON O.USER_ID = R.USER_ID
|
|
|
+ WHERE
|
|
|
+ O.DEC_TYPE = 'ZC' AND O.PERIOD_NUM IN ( SELECT PERIOD_NUM FROM AR_PERIOD WHERE CALC_YEAR = PCALCYEAR AND CALC_MONTH = PCALCMONTH )
|
|
|
+ GROUP BY R.PARENT_UID
|
|
|
+ ) DO ON DO.PARENT_UID = AU.ID
|
|
|
+ WHERE
|
|
|
+ AU.DELETED = 0;
|
|
|
+
|
|
|
+END ;;
|
|
|
+DELIMITER ;
|
|
|
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
|
|
+/*!50003 SET character_set_client = @saved_cs_client */ ;
|
|
|
+/*!50003 SET character_set_results = @saved_cs_results */ ;
|
|
|
+/*!50003 SET collation_connection = @saved_col_connection */ ;
|
|
|
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
|
|
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
|
|
|
+/*!50003 DROP PROCEDURE IF EXISTS `CALCKEEP` */;
|
|
|
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
|
|
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
|
|
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
|
|
+/*!50003 SET character_set_client = utf8mb4 */ ;
|
|
|
+/*!50003 SET character_set_results = utf8mb4 */ ;
|
|
|
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
|
|
+DELIMITER ;;
|
|
|
+CREATE DEFINER=`babysbreath`@`%` 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_MNT,
|
|
|
+ MANAGE_TAX_MNT,
|
|
|
+ AMOUNT_MNT,
|
|
|
+ ORI_BONUS_ABBR,
|
|
|
+ MANAGE_TAX_ABBR,
|
|
|
+ AMOUNT_ABBR,
|
|
|
+ ACHIEVE_MEMBER_NUM,
|
|
|
+ ACHIEVE_PERF_PV
|
|
|
+ ) 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.BONUS_MNT, 0 ),
|
|
|
+ 0,
|
|
|
+ IFNULL( A.BONUS_MNT, 0 ),
|
|
|
+ IFNULL( A.BONUS_ABBR, 0 ),
|
|
|
+ 0,
|
|
|
+ IFNULL( A.BONUS_ABBR, 0 ),
|
|
|
+ A.ACHIEVE_MEMBER_NUM,
|
|
|
+ A.ACHIEVE_PERF_PV
|
|
|
+ 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_MNT,
|
|
|
+ MANAGE_TAX_MNT,
|
|
|
+ AMOUNT_MNT,
|
|
|
+ ORI_BONUS_ABBR,
|
|
|
+ MANAGE_TAX_ABBR,
|
|
|
+ AMOUNT_ABBR
|
|
|
+ ) 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.BONUS_MNT, 0 ),
|
|
|
+ 0,
|
|
|
+ IFNULL( A.BONUS_MNT, 0 ),
|
|
|
+ IFNULL( A.BONUS_ABBR, 0 ),
|
|
|
+ 0,
|
|
|
+ IFNULL( A.BONUS_ABBR, 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 ;
|
|
|
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
|
|
+/*!50003 SET character_set_client = @saved_cs_client */ ;
|
|
|
+/*!50003 SET character_set_results = @saved_cs_results */ ;
|
|
|
+/*!50003 SET collation_connection = @saved_col_connection */ ;
|
|
|
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
|
|
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ;
|
|
|
+/*!50003 DROP PROCEDURE IF EXISTS `CALCLEVEL` */;
|
|
|
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
|
|
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
|
|
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
|
|
+/*!50003 SET character_set_client = utf8mb4 */ ;
|
|
|
+/*!50003 SET character_set_results = utf8mb4 */ ;
|
|
|
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
|
|
+DELIMITER ;;
|
|
|
+CREATE DEFINER=`babysbreath`@`%` PROCEDURE `CALCLEVEL`(IN `PCPID` INT)
|
|
|
+BEGIN
|
|
|
+ DECLARE
|
|
|
+ FLAG,
|
|
|
+ MLAYER,
|
|
|
+ MUSERTYPE INT DEFAULT 0;
|
|
|
+ DECLARE
|
|
|
+ MGPV 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;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+END ;;
|
|
|
+DELIMITER ;
|
|
|
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
|
|
+/*!50003 SET character_set_client = @saved_cs_client */ ;
|
|
|
+/*!50003 SET character_set_results = @saved_cs_results */ ;
|
|
|
+/*!50003 SET collation_connection = @saved_col_connection */ ;
|
|
|
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
|
|
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ;
|
|
|
+/*!50003 DROP PROCEDURE IF EXISTS `CALCLEVEL_` */;
|
|
|
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
|
|
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
|
|
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
|
|
+/*!50003 SET character_set_client = utf8mb4 */ ;
|
|
|
+/*!50003 SET character_set_results = utf8mb4 */ ;
|
|
|
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
|
|
+DELIMITER ;;
|
|
|
+CREATE DEFINER=`babysbreath`@`%` PROCEDURE `CALCLEVEL_`(IN PLAYER int, IN PCPID int)
|
|
|
+BEGIN
|
|
|
+ DECLARE
|
|
|
+ FLAG,
|
|
|
+ MLAYER,
|
|
|
+ MUSERTYPE INT DEFAULT 0;
|
|
|
+ DECLARE
|
|
|
+ MUSERID,
|
|
|
+ MBONUSID,
|
|
|
+ MNEWBONUSID VARCHAR ( 50 );
|
|
|
+ DECLARE
|
|
|
+ MRATE,
|
|
|
+ MRATE30,
|
|
|
+ MRATE40,
|
|
|
+ MRATE50,
|
|
|
+ MRATE60,
|
|
|
+ MRATE70,
|
|
|
+ MRATE80,
|
|
|
+ MRATE90,
|
|
|
+ MRATE100,
|
|
|
+ MRATE110,
|
|
|
+ MBONUS,
|
|
|
+ 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;
|
|
|
+
|
|
|
+ -- 取各级别蓝星奖比例【开始】
|
|
|
+ SELECT
|
|
|
+ T.BS_PERCENT / 100 INTO MRATE30
|
|
|
+ FROM
|
|
|
+ AR_EMPLOY_LEVEL T
|
|
|
+ WHERE
|
|
|
+ T.ID = 'E121497617216708616';
|
|
|
+
|
|
|
+ SELECT
|
|
|
+ T.BS_PERCENT / 100 INTO MRATE40
|
|
|
+ FROM
|
|
|
+ AR_EMPLOY_LEVEL T
|
|
|
+ WHERE
|
|
|
+ T.ID = '67BE6A4D03C52288E055736AECE8644D';
|
|
|
+
|
|
|
+ SELECT
|
|
|
+ T.BS_PERCENT / 100 INTO MRATE50
|
|
|
+ FROM
|
|
|
+ AR_EMPLOY_LEVEL T
|
|
|
+ WHERE
|
|
|
+ T.ID = '67BE6EA2070D22EBE055736AECE8644D';
|
|
|
+
|
|
|
+ SELECT
|
|
|
+ T.BS_PERCENT / 100 INTO MRATE60
|
|
|
+ FROM
|
|
|
+ AR_EMPLOY_LEVEL T
|
|
|
+ WHERE
|
|
|
+ T.ID = '67BE742A336F2370E055736AECE8644D';
|
|
|
+
|
|
|
+ SELECT
|
|
|
+ T.BS_PERCENT / 100 INTO MRATE70
|
|
|
+ FROM
|
|
|
+ AR_EMPLOY_LEVEL T
|
|
|
+ WHERE
|
|
|
+ T.ID = '67BE805032C22492E055736AECE8644D';
|
|
|
+
|
|
|
+# SELECT
|
|
|
+# T.BS_PERCENT / 100 INTO MRATE80
|
|
|
+# FROM
|
|
|
+# AR_EMPLOY_LEVEL T
|
|
|
+# WHERE
|
|
|
+# T.ID = '67BE82019BE524CAE055736AECE8644D';
|
|
|
+#
|
|
|
+# SELECT
|
|
|
+# T.BS_PERCENT / 100 INTO MRATE90
|
|
|
+# FROM
|
|
|
+# AR_EMPLOY_LEVEL T
|
|
|
+# WHERE
|
|
|
+# T.ID = '99BE5FE7857C216AE055736AECE8644D';
|
|
|
+#
|
|
|
+# SELECT
|
|
|
+# T.BS_PERCENT / 100 INTO MRATE100
|
|
|
+# FROM
|
|
|
+# AR_EMPLOY_LEVEL T
|
|
|
+# WHERE
|
|
|
+# T.ID = '99BE5FE9008C216AE055736AECE8644D';
|
|
|
+#
|
|
|
+# SELECT
|
|
|
+# T.BS_PERCENT / 100 INTO MRATE110
|
|
|
+# FROM
|
|
|
+# AR_EMPLOY_LEVEL T
|
|
|
+# WHERE
|
|
|
+# T.ID = '99BE5FE7857C216AE000223AECE8644D';
|
|
|
+ -- 取各级别蓝星奖比例【结束】
|
|
|
+
|
|
|
+ -- 打开游标
|
|
|
+ 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 <= 5 ) 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
|
|
|
+
|
|
|
+ SET MRATE := MRATE30;
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 2 ) THEN
|
|
|
+
|
|
|
+ SET MRATE := MRATE40;
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 3 ) THEN
|
|
|
+
|
|
|
+ SET MRATE := MRATE50;
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 4 ) THEN
|
|
|
+
|
|
|
+ SET MRATE := MRATE60;
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 5 ) THEN
|
|
|
+
|
|
|
+ SET MRATE := MRATE70;
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 6 ) THEN
|
|
|
+
|
|
|
+ SET MRATE := MRATE80;
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 7 ) THEN
|
|
|
+
|
|
|
+ SET MRATE := MRATE90;
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 8 ) THEN
|
|
|
+
|
|
|
+ SET MRATE := MRATE100;
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 9 ) THEN
|
|
|
+
|
|
|
+ SET MRATE := MRATE110;
|
|
|
+
|
|
|
+ END IF;
|
|
|
+
|
|
|
+ SET MBONUS := MGPV * MRATE;
|
|
|
+ IF
|
|
|
+ ( MLAYER = 1 ) THEN
|
|
|
+ UPDATE AR_BS_BONUS_103_CALC T
|
|
|
+ SET T.BONUS30 = T.BONUS30 + MBONUS
|
|
|
+ WHERE
|
|
|
+ T.USER_ID = MBONUSID;
|
|
|
+ INSERT INTO AR_CALC_BONUS_BS_DETAIL_BONUS ( USER_ID, INTRODUCER_ID, LAST_EMP_LV, ORI_BONUS, PV, RATE,PERIOD_NUM )
|
|
|
+ VALUES
|
|
|
+ ( MBONUSID, NULL, 30, MBONUS, MGPV, MRATE ,PCPID);
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 2 ) THEN
|
|
|
+ UPDATE AR_BS_BONUS_103_CALC T
|
|
|
+ SET T.BONUS40 = T.BONUS40 + MBONUS
|
|
|
+ WHERE
|
|
|
+ T.USER_ID = MBONUSID;
|
|
|
+ INSERT INTO AR_CALC_BONUS_BS_DETAIL_BONUS ( USER_ID, INTRODUCER_ID, LAST_EMP_LV, ORI_BONUS, PV, RATE,PERIOD_NUM )
|
|
|
+ VALUES
|
|
|
+ ( MBONUSID, MUSERID, 40, MBONUS, MGPV, MRATE ,PCPID);
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 3 ) THEN
|
|
|
+ UPDATE AR_BS_BONUS_103_CALC T
|
|
|
+ SET T.BONUS50 = T.BONUS50 + MBONUS
|
|
|
+ WHERE
|
|
|
+ T.USER_ID = MBONUSID;
|
|
|
+ INSERT INTO AR_CALC_BONUS_BS_DETAIL_BONUS ( USER_ID, INTRODUCER_ID, LAST_EMP_LV, ORI_BONUS, PV, RATE,PERIOD_NUM )
|
|
|
+ VALUES
|
|
|
+ ( MBONUSID, MUSERID, 50, MBONUS, MGPV, MRATE,PCPID );
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 4 ) THEN
|
|
|
+ UPDATE AR_BS_BONUS_103_CALC T
|
|
|
+ SET T.BONUS60 = T.BONUS60 + MBONUS
|
|
|
+ WHERE
|
|
|
+ T.USER_ID = MBONUSID;
|
|
|
+ INSERT INTO AR_CALC_BONUS_BS_DETAIL_BONUS ( USER_ID, INTRODUCER_ID, LAST_EMP_LV, ORI_BONUS, PV, RATE,PERIOD_NUM )
|
|
|
+ VALUES
|
|
|
+ ( MBONUSID, MUSERID, 60, MBONUS, MGPV, MRATE,PCPID );
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 5 ) THEN
|
|
|
+ UPDATE AR_BS_BONUS_103_CALC T
|
|
|
+ SET T.BONUS70 = T.BONUS70 + MBONUS
|
|
|
+ WHERE
|
|
|
+ T.USER_ID = MBONUSID;
|
|
|
+ INSERT INTO AR_CALC_BONUS_BS_DETAIL_BONUS ( USER_ID, INTRODUCER_ID, LAST_EMP_LV, ORI_BONUS, PV, RATE,PERIOD_NUM )
|
|
|
+ VALUES
|
|
|
+ ( MBONUSID, MUSERID, 70, MBONUS, MGPV, MRATE,PCPID );
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 6 ) THEN
|
|
|
+ UPDATE AR_BS_BONUS_103_CALC T
|
|
|
+ SET T.BONUS80 = T.BONUS80 + MBONUS
|
|
|
+ WHERE
|
|
|
+ T.USER_ID = MBONUSID;
|
|
|
+ INSERT INTO AR_CALC_BONUS_BS_DETAIL_BONUS ( USER_ID, INTRODUCER_ID, LAST_EMP_LV, ORI_BONUS, PV, RATE,PERIOD_NUM )
|
|
|
+ VALUES
|
|
|
+ ( MBONUSID, MUSERID, 80, MBONUS, MGPV, MRATE,PCPID );
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 7 ) THEN
|
|
|
+ UPDATE AR_BS_BONUS_103_CALC T
|
|
|
+ SET T.BONUS90 = T.BONUS90 + MBONUS
|
|
|
+ WHERE
|
|
|
+ T.USER_ID = MBONUSID;
|
|
|
+ INSERT INTO AR_CALC_BONUS_BS_DETAIL_BONUS ( USER_ID, INTRODUCER_ID, LAST_EMP_LV, ORI_BONUS, PV, RATE,PERIOD_NUM )
|
|
|
+ VALUES
|
|
|
+ ( MBONUSID, MUSERID, 90, MBONUS, MGPV, MRATE,PCPID );
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 8 ) THEN
|
|
|
+ UPDATE AR_BS_BONUS_103_CALC T
|
|
|
+ SET T.BONUS100 = T.BONUS100 + MBONUS
|
|
|
+ WHERE
|
|
|
+ T.USER_ID = MBONUSID;
|
|
|
+ INSERT INTO AR_CALC_BONUS_BS_DETAIL_BONUS ( USER_ID, INTRODUCER_ID, LAST_EMP_LV, ORI_BONUS, PV, RATE,PERIOD_NUM )
|
|
|
+ VALUES
|
|
|
+ ( MBONUSID, MUSERID, 100, MBONUS, MGPV, MRATE,PCPID );
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 9 ) THEN
|
|
|
+ UPDATE AR_BS_BONUS_103_CALC T
|
|
|
+ SET T.BONUS110 = T.BONUS110 + MBONUS
|
|
|
+ WHERE
|
|
|
+ T.USER_ID = MBONUSID;
|
|
|
+ INSERT INTO AR_CALC_BONUS_BS_DETAIL_BONUS ( USER_ID, INTRODUCER_ID, LAST_EMP_LV, ORI_BONUS, PV, RATE,PERIOD_NUM )
|
|
|
+ VALUES
|
|
|
+ ( MBONUSID, MUSERID, 110, MBONUS, MGPV, MRATE,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 ;
|
|
|
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
|
|
+/*!50003 SET character_set_client = @saved_cs_client */ ;
|
|
|
+/*!50003 SET character_set_results = @saved_cs_results */ ;
|
|
|
+/*!50003 SET collation_connection = @saved_col_connection */ ;
|
|
|
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
|
|
+/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ;
|
|
|
+/*!50003 DROP PROCEDURE IF EXISTS `CALCLEVEL_kevin_01` */;
|
|
|
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
|
|
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
|
|
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
|
|
+/*!50003 SET character_set_client = utf8mb4 */ ;
|
|
|
+/*!50003 SET character_set_results = utf8mb4 */ ;
|
|
|
+/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ;
|
|
|
+DELIMITER ;;
|
|
|
+CREATE DEFINER=`babysbreath`@`%` PROCEDURE `CALCLEVEL_kevin_01`(IN PLAYER int, IN PCPID int)
|
|
|
+BEGIN
|
|
|
+ DECLARE
|
|
|
+ FLAG,
|
|
|
+ MLAYER,
|
|
|
+ MUSERTYPE INT DEFAULT 0;
|
|
|
+ DECLARE
|
|
|
+ MUSERID,
|
|
|
+ MBONUSID,
|
|
|
+ MNEWBONUSID VARCHAR ( 50 );
|
|
|
+ DECLARE
|
|
|
+ MRATE,
|
|
|
+ MRATE30,
|
|
|
+ MRATE40,
|
|
|
+ MRATE50,
|
|
|
+ MRATE60,
|
|
|
+ MRATE70,
|
|
|
+ MRATE80,
|
|
|
+ MRATE90,
|
|
|
+ MRATE100,
|
|
|
+ MRATE110,
|
|
|
+ MBONUS,
|
|
|
+ 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;
|
|
|
+ SELECT
|
|
|
+ T.BS_PERCENT / 100 INTO MRATE30
|
|
|
+ FROM
|
|
|
+ AR_EMPLOY_LEVEL T
|
|
|
+ WHERE
|
|
|
+ T.ID = 'E121497617216708616';
|
|
|
+ SELECT
|
|
|
+ T.BS_PERCENT / 100 INTO MRATE40
|
|
|
+ FROM
|
|
|
+ AR_EMPLOY_LEVEL T
|
|
|
+ WHERE
|
|
|
+ T.ID = '67BE6A4D03C52288E055736AECE8644D';
|
|
|
+ SELECT
|
|
|
+ T.BS_PERCENT / 100 INTO MRATE50
|
|
|
+ FROM
|
|
|
+ AR_EMPLOY_LEVEL T
|
|
|
+ WHERE
|
|
|
+ T.ID = '67BE6EA2070D22EBE055736AECE8644D';
|
|
|
+ SELECT
|
|
|
+ T.BS_PERCENT / 100 INTO MRATE60
|
|
|
+ FROM
|
|
|
+ AR_EMPLOY_LEVEL T
|
|
|
+ WHERE
|
|
|
+ T.ID = '67BE742A336F2370E055736AECE8644D';
|
|
|
+ SELECT
|
|
|
+ T.BS_PERCENT / 100 INTO MRATE70
|
|
|
+ FROM
|
|
|
+ AR_EMPLOY_LEVEL T
|
|
|
+ WHERE
|
|
|
+ T.ID = '67BE805032C22492E055736AECE8644D';
|
|
|
+ SELECT
|
|
|
+ T.BS_PERCENT / 100 INTO MRATE80
|
|
|
+ FROM
|
|
|
+ AR_EMPLOY_LEVEL T
|
|
|
+ WHERE
|
|
|
+ T.ID = '67BE82019BE524CAE055736AECE8644D';
|
|
|
+ SELECT
|
|
|
+ T.BS_PERCENT / 100 INTO MRATE90
|
|
|
+ FROM
|
|
|
+ AR_EMPLOY_LEVEL T
|
|
|
+ WHERE
|
|
|
+ T.ID = '99BE5FE7857C216AE055736AECE8644D';
|
|
|
+ SELECT
|
|
|
+ T.BS_PERCENT / 100 INTO MRATE100
|
|
|
+ FROM
|
|
|
+ AR_EMPLOY_LEVEL T
|
|
|
+ WHERE
|
|
|
+ T.ID = '99BE5FE9008C216AE055736AECE8644D';
|
|
|
+ SELECT
|
|
|
+ T.BS_PERCENT / 100 INTO MRATE110
|
|
|
+ FROM
|
|
|
+ AR_EMPLOY_LEVEL T
|
|
|
+ WHERE
|
|
|
+ T.ID = '99BE5FE7857C216AE000223AECE8644D';-- 打开游标
|
|
|
+ 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
|
|
|
+
|
|
|
+ SET MRATE := MRATE30;
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 2 ) THEN
|
|
|
+
|
|
|
+ SET MRATE := MRATE40;
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 3 ) THEN
|
|
|
+
|
|
|
+ SET MRATE := MRATE50;
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 4 ) THEN
|
|
|
+
|
|
|
+ SET MRATE := MRATE60;
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 5 ) THEN
|
|
|
+
|
|
|
+ SET MRATE := MRATE70;
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 6 ) THEN
|
|
|
+
|
|
|
+ SET MRATE := MRATE80;
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 7 ) THEN
|
|
|
+
|
|
|
+ SET MRATE := MRATE90;
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 8 ) THEN
|
|
|
+
|
|
|
+ SET MRATE := MRATE100;
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 9 ) THEN
|
|
|
+
|
|
|
+ SET MRATE := MRATE110;
|
|
|
+
|
|
|
+ END IF;
|
|
|
+
|
|
|
+ SET MBONUS := MGPV * MRATE;
|
|
|
+ IF
|
|
|
+ ( MLAYER = 1 ) THEN
|
|
|
+ UPDATE AR_BS_BONUS_103_CALC T
|
|
|
+ SET T.BONUS30 = T.BONUS30 + MBONUS
|
|
|
+ WHERE
|
|
|
+ T.USER_ID = MBONUSID;
|
|
|
+ INSERT INTO AR_CALC_BONUS_BS_DETAIL_BONUS ( USER_ID, INTRODUCER_ID, LAST_EMP_LV, ORI_BONUS, PV, RATE,PERIOD_NUM )
|
|
|
+ VALUES
|
|
|
+ ( MBONUSID, NULL, 30, MBONUS, MGPV, MRATE ,PCPID);
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 2 ) THEN
|
|
|
+ UPDATE AR_BS_BONUS_103_CALC T
|
|
|
+ SET T.BONUS40 = T.BONUS40 + MBONUS
|
|
|
+ WHERE
|
|
|
+ T.USER_ID = MBONUSID;
|
|
|
+ INSERT INTO AR_CALC_BONUS_BS_DETAIL_BONUS ( USER_ID, INTRODUCER_ID, LAST_EMP_LV, ORI_BONUS, PV, RATE,PERIOD_NUM )
|
|
|
+ VALUES
|
|
|
+ ( MBONUSID, MUSERID, 40, MBONUS, MGPV, MRATE ,PCPID);
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 3 ) THEN
|
|
|
+ UPDATE AR_BS_BONUS_103_CALC T
|
|
|
+ SET T.BONUS50 = T.BONUS50 + MBONUS
|
|
|
+ WHERE
|
|
|
+ T.USER_ID = MBONUSID;
|
|
|
+ INSERT INTO AR_CALC_BONUS_BS_DETAIL_BONUS ( USER_ID, INTRODUCER_ID, LAST_EMP_LV, ORI_BONUS, PV, RATE,PERIOD_NUM )
|
|
|
+ VALUES
|
|
|
+ ( MBONUSID, MUSERID, 50, MBONUS, MGPV, MRATE,PCPID );
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 4 ) THEN
|
|
|
+ UPDATE AR_BS_BONUS_103_CALC T
|
|
|
+ SET T.BONUS60 = T.BONUS60 + MBONUS
|
|
|
+ WHERE
|
|
|
+ T.USER_ID = MBONUSID;
|
|
|
+ INSERT INTO AR_CALC_BONUS_BS_DETAIL_BONUS ( USER_ID, INTRODUCER_ID, LAST_EMP_LV, ORI_BONUS, PV, RATE,PERIOD_NUM )
|
|
|
+ VALUES
|
|
|
+ ( MBONUSID, MUSERID, 60, MBONUS, MGPV, MRATE,PCPID );
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 5 ) THEN
|
|
|
+ UPDATE AR_BS_BONUS_103_CALC T
|
|
|
+ SET T.BONUS70 = T.BONUS70 + MBONUS
|
|
|
+ WHERE
|
|
|
+ T.USER_ID = MBONUSID;
|
|
|
+ INSERT INTO AR_CALC_BONUS_BS_DETAIL_BONUS ( USER_ID, INTRODUCER_ID, LAST_EMP_LV, ORI_BONUS, PV, RATE,PERIOD_NUM )
|
|
|
+ VALUES
|
|
|
+ ( MBONUSID, MUSERID, 70, MBONUS, MGPV, MRATE,PCPID );
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 6 ) THEN
|
|
|
+ UPDATE AR_BS_BONUS_103_CALC T
|
|
|
+ SET T.BONUS80 = T.BONUS80 + MBONUS
|
|
|
+ WHERE
|
|
|
+ T.USER_ID = MBONUSID;
|
|
|
+ INSERT INTO AR_CALC_BONUS_BS_DETAIL_BONUS ( USER_ID, INTRODUCER_ID, LAST_EMP_LV, ORI_BONUS, PV, RATE,PERIOD_NUM )
|
|
|
+ VALUES
|
|
|
+ ( MBONUSID, MUSERID, 80, MBONUS, MGPV, MRATE,PCPID );
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 7 ) THEN
|
|
|
+ UPDATE AR_BS_BONUS_103_CALC T
|
|
|
+ SET T.BONUS90 = T.BONUS90 + MBONUS
|
|
|
+ WHERE
|
|
|
+ T.USER_ID = MBONUSID;
|
|
|
+ INSERT INTO AR_CALC_BONUS_BS_DETAIL_BONUS ( USER_ID, INTRODUCER_ID, LAST_EMP_LV, ORI_BONUS, PV, RATE,PERIOD_NUM )
|
|
|
+ VALUES
|
|
|
+ ( MBONUSID, MUSERID, 90, MBONUS, MGPV, MRATE,PCPID );
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 8 ) THEN
|
|
|
+ UPDATE AR_BS_BONUS_103_CALC T
|
|
|
+ SET T.BONUS100 = T.BONUS100 + MBONUS
|
|
|
+ WHERE
|
|
|
+ T.USER_ID = MBONUSID;
|
|
|
+ INSERT INTO AR_CALC_BONUS_BS_DETAIL_BONUS ( USER_ID, INTRODUCER_ID, LAST_EMP_LV, ORI_BONUS, PV, RATE,PERIOD_NUM )
|
|
|
+ VALUES
|
|
|
+ ( MBONUSID, MUSERID, 100, MBONUS, MGPV, MRATE,PCPID );
|
|
|
+
|
|
|
+ ELSEIF ( MLAYER = 9 ) THEN
|
|
|
+ UPDATE AR_BS_BONUS_103_CALC T
|
|
|
+ SET T.BONUS110 = T.BONUS110 + MBONUS
|
|
|
+ WHERE
|
|
|
+ T.USER_ID = MBONUSID;
|
|
|
+ INSERT INTO AR_CALC_BONUS_BS_DETAIL_BONUS ( USER_ID, INTRODUCER_ID, LAST_EMP_LV, ORI_BONUS, PV, RATE,PERIOD_NUM )
|
|
|
+ VALUES
|
|
|
+ ( MBONUSID, MUSERID, 110, MBONUS, MGPV, MRATE,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 ;
|
|
|
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
|
|
+/*!50003 SET character_set_client = @saved_cs_client */ ;
|
|
|
+/*!50003 SET character_set_results = @saved_cs_results */ ;
|
|
|
+/*!50003 SET collation_connection = @saved_col_connection */ ;
|
|
|
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
|
|
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ;
|
|
|
+/*!50003 DROP PROCEDURE IF EXISTS `CALCMAIN` */;
|
|
|
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
|
|
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
|
|
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
|
|
+/*!50003 SET character_set_client = utf8mb4 */ ;
|
|
|
+/*!50003 SET character_set_results = utf8mb4 */ ;
|
|
|
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
|
|
+DELIMITER ;;
|
|
|
+CREATE DEFINER=`babysbreath`@`%` 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 ;
|
|
|
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
|
|
+/*!50003 SET character_set_client = @saved_cs_client */ ;
|
|
|
+/*!50003 SET character_set_results = @saved_cs_results */ ;
|
|
|
+/*!50003 SET collation_connection = @saved_col_connection */ ;
|
|
|
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
|
|
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ;
|
|
|
+/*!50003 DROP PROCEDURE IF EXISTS `CALCPOINT` */;
|
|
|
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
|
|
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
|
|
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
|
|
+/*!50003 SET character_set_client = utf8mb4 */ ;
|
|
|
+/*!50003 SET character_set_results = utf8mb4 */ ;
|
|
|
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
|
|
+DELIMITER ;;
|
|
|
+CREATE DEFINER=`babysbreath`@`%` 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 ;
|
|
|
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
|
|
+/*!50003 SET character_set_client = @saved_cs_client */ ;
|
|
|
+/*!50003 SET character_set_results = @saved_cs_results */ ;
|
|
|
+/*!50003 SET collation_connection = @saved_col_connection */ ;
|
|
|
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
|
|
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ;
|
|
|
+/*!50003 DROP PROCEDURE IF EXISTS `CALCRECORD` */;
|
|
|
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
|
|
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
|
|
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
|
|
+/*!50003 SET character_set_client = utf8mb4 */ ;
|
|
|
+/*!50003 SET character_set_results = utf8mb4 */ ;
|
|
|
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
|
|
+DELIMITER ;;
|
|
|
+CREATE DEFINER=`babysbreath`@`%` 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 ;
|
|
|
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
|
|
+/*!50003 SET character_set_client = @saved_cs_client */ ;
|
|
|
+/*!50003 SET character_set_results = @saved_cs_results */ ;
|
|
|
+/*!50003 SET collation_connection = @saved_col_connection */ ;
|
|
|
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
|
|
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ;
|
|
|
+/*!50003 DROP PROCEDURE IF EXISTS `CALCREFEREE` */;
|
|
|
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
|
|
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
|
|
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
|
|
+/*!50003 SET character_set_client = utf8mb4 */ ;
|
|
|
+/*!50003 SET character_set_results = utf8mb4 */ ;
|
|
|
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
|
|
+DELIMITER ;;
|
|
|
+CREATE DEFINER=`babysbreath`@`%` 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 ;
|
|
|
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
|
|
+/*!50003 SET character_set_client = @saved_cs_client */ ;
|
|
|
+/*!50003 SET character_set_results = @saved_cs_results */ ;
|
|
|
+/*!50003 SET collation_connection = @saved_col_connection */ ;
|
|
|
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
|
|
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ;
|
|
|
+/*!50003 DROP PROCEDURE IF EXISTS `CALCSTAT` */;
|
|
|
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
|
|
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
|
|
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
|
|
+/*!50003 SET character_set_client = utf8mb4 */ ;
|
|
|
+/*!50003 SET character_set_results = utf8mb4 */ ;
|
|
|
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
|
|
+DELIMITER ;;
|
|
|
+CREATE DEFINER=`babysbreath`@`%` 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_MNT,
|
|
|
+ BONUS_MNT_PERCENT,
|
|
|
+ BONUS_ABBR,
|
|
|
+ BONUS_ABBR_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(BONUS_MNT),
|
|
|
+ 0,
|
|
|
+ SUM(BONUS_ABBR),
|
|
|
+ 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_MNT_PERCENT = BONUS_MNT / TOTAL_PV,
|
|
|
+ BONUS_ABBR_PERCENT = BONUS_ABBR / TOTAL_PV
|
|
|
+ WHERE
|
|
|
+ PERIOD_NUM = PCPID AND TOTAL_PV > 0;
|
|
|
+
|
|
|
+END ;;
|
|
|
+DELIMITER ;
|
|
|
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
|
|
+/*!50003 SET character_set_client = @saved_cs_client */ ;
|
|
|
+/*!50003 SET character_set_results = @saved_cs_results */ ;
|
|
|
+/*!50003 SET collation_connection = @saved_col_connection */ ;
|
|
|
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
|
|
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ;
|
|
|
+/*!50003 DROP PROCEDURE IF EXISTS `CALCSUMMARY` */;
|
|
|
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
|
|
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
|
|
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
|
|
+/*!50003 SET character_set_client = utf8mb4 */ ;
|
|
|
+/*!50003 SET character_set_results = utf8mb4 */ ;
|
|
|
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
|
|
+DELIMITER ;;
|
|
|
+CREATE DEFINER=`babysbreath`@`%` 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.BONUS_MNT = BONUS30 + BONUS40 + BONUS50 + BONUS60 + BONUS70 + BONUS80 + BONUS90 + BONUS100 + BONUS110,
|
|
|
+ T.BONUS_ABBR = BONUS10 + BONUS20
|
|
|
+ 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 ;
|
|
|
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
|
|
+/*!50003 SET character_set_client = @saved_cs_client */ ;
|
|
|
+/*!50003 SET character_set_results = @saved_cs_results */ ;
|
|
|
+/*!50003 SET collation_connection = @saved_col_connection */ ;
|
|
|
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
|
|
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ;
|
|
|
+/*!50003 DROP PROCEDURE IF EXISTS `CALCTOTALGPV` */;
|
|
|
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
|
|
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
|
|
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
|
|
+/*!50003 SET character_set_client = utf8mb4 */ ;
|
|
|
+/*!50003 SET character_set_results = utf8mb4 */ ;
|
|
|
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
|
|
+DELIMITER ;;
|
|
|
+CREATE DEFINER=`babysbreath`@`%` 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 ;
|
|
|
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
|
|
+/*!50003 SET character_set_client = @saved_cs_client */ ;
|
|
|
+/*!50003 SET character_set_results = @saved_cs_results */ ;
|
|
|
+/*!50003 SET collation_connection = @saved_col_connection */ ;
|
|
|
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
|
|
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ;
|
|
|
+/*!50003 DROP PROCEDURE IF EXISTS `CALCTOTALGPV_` */;
|
|
|
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
|
|
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
|
|
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
|
|
+/*!50003 SET character_set_client = utf8mb4 */ ;
|
|
|
+/*!50003 SET character_set_results = utf8mb4 */ ;
|
|
|
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
|
|
+DELIMITER ;;
|
|
|
+CREATE DEFINER=`babysbreath`@`%` 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 ;
|
|
|
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
|
|
+/*!50003 SET character_set_client = @saved_cs_client */ ;
|
|
|
+/*!50003 SET character_set_results = @saved_cs_results */ ;
|
|
|
+/*!50003 SET collation_connection = @saved_col_connection */ ;
|
|
|
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
|
|
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ;
|
|
|
+/*!50003 DROP PROCEDURE IF EXISTS `CALCUP30` */;
|
|
|
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
|
|
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
|
|
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
|
|
+/*!50003 SET character_set_client = utf8mb4 */ ;
|
|
|
+/*!50003 SET character_set_results = utf8mb4 */ ;
|
|
|
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
|
|
+DELIMITER ;;
|
|
|
+CREATE DEFINER=`babysbreath`@`%` 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 ;
|
|
|
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
|
|
+/*!50003 SET character_set_client = @saved_cs_client */ ;
|
|
|
+/*!50003 SET character_set_results = @saved_cs_results */ ;
|
|
|
+/*!50003 SET collation_connection = @saved_col_connection */ ;
|
|
|
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
|
|
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ;
|
|
|
+/*!50003 DROP PROCEDURE IF EXISTS `CALCUPGARDE` */;
|
|
|
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
|
|
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
|
|
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
|
|
+/*!50003 SET character_set_client = utf8mb4 */ ;
|
|
|
+/*!50003 SET character_set_results = utf8mb4 */ ;
|
|
|
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
|
|
+DELIMITER ;;
|
|
|
+CREATE DEFINER=`babysbreath`@`%` 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 ;
|
|
|
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
|
|
+/*!50003 SET character_set_client = @saved_cs_client */ ;
|
|
|
+/*!50003 SET character_set_results = @saved_cs_results */ ;
|
|
|
+/*!50003 SET collation_connection = @saved_col_connection */ ;
|
|
|
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
|
|
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ;
|
|
|
+/*!50003 DROP PROCEDURE IF EXISTS `CLEANACTIVE` */;
|
|
|
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
|
|
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
|
|
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
|
|
+/*!50003 SET character_set_client = utf8mb4 */ ;
|
|
|
+/*!50003 SET character_set_results = utf8mb4 */ ;
|
|
|
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
|
|
+DELIMITER ;;
|
|
|
+CREATE DEFINER=`babysbreath`@`%` PROCEDURE `CLEANACTIVE`(IN `UNUMBER` VARCHAR(32))
|
|
|
+BEGIN
|
|
|
+DECLARE t_error INTEGER DEFAULT 0;
|
|
|
+DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1;
|
|
|
+
|
|
|
+START TRANSACTION;
|
|
|
+ -- 备份用户的余额 奖金 兑换积分 复消积分
|
|
|
+ INSERT INTO `AR_ACTIVED_ACCOUNT_BACK` ( `USER_ID`, `USER_NAME`, `USER_CASH`, `EXCHANGE_POINTS`, `EXCHANGE_POINTS_TOTAL`, `RECONSUME_POINTS`, `RECONSUME_POINTS_TOTAL`, `USER_BONUS`, `RECONSUME_POINTS_EXPIRED` ) SELECT
|
|
|
+`AR_USER_BONUS`.`USER_ID`,
|
|
|
+`AR_USER`.`USER_NAME`,
|
|
|
+`AR_USER_WALLET`.`CASH`,
|
|
|
+`AR_USER_BONUS`.`EXCHANGE_POINTS`,
|
|
|
+`AR_USER_BONUS`.`EXCHANGE_POINTS_TOTAL`,
|
|
|
+`AR_USER_BONUS`.`RECONSUME_POINTS`,
|
|
|
+`AR_USER_BONUS`.`RECONSUME_POINTS_TOTAL`,
|
|
|
+`AR_USER_BONUS`.`BONUS`,
|
|
|
+`AR_USER_BONUS`.`RECONSUME_POINTS_EXPIRED`
|
|
|
+FROM
|
|
|
+ `AR_USER_BONUS`
|
|
|
+ INNER JOIN `AR_USER` ON `AR_USER`.`ID` = `AR_USER_BONUS`.`USER_ID`
|
|
|
+ LEFT JOIN `AR_USER_WALLET` ON `AR_USER_WALLET`.`USER_ID` = `AR_USER_BONUS`.`USER_ID`
|
|
|
+WHERE
|
|
|
+ `AR_USER`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ -- 删除用户奖金
|
|
|
+ DELETE `UB` FROM `AR_USER_BONUS` `UB` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`UB`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+
|
|
|
+ -- 清除用户的cash余额
|
|
|
+ UPDATE `AR_USER_WALLET` INNER JOIN `AR_USER` ON `AR_USER`.`ID`=`AR_USER_WALLET`.`USER_ID` SET `AR_USER_WALLET`.`CASH`=0 WHERE `AR_USER`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+
|
|
|
+ -- 删除用户累计业绩
|
|
|
+ DELETE `UP` FROM `AR_USER_PERF` `UP` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`UP`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+
|
|
|
+ -- 删除用户总奖金发送记录
|
|
|
+ DELETE `CB` FROM `AR_CALC_BONUS` `CB` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`CB`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+
|
|
|
+ -- 删除用户各个奖金发送记录
|
|
|
+ DELETE `CBBD` FROM `AR_CALC_BONUS_BD` `CBBD` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`CBBD`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `CBBS` FROM `AR_CALC_BONUS_BS` `CBBS` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`CBBS`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `CBBT` FROM `AR_CALC_BONUS_BT` `CBBT` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`CBBT`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `CBCF` FROM `AR_CALC_BONUS_CF` `CBCF` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`CBCF`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `CBFL` FROM `AR_CALC_BONUS_FL` `CBFL` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`CBFL`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `CBFW` FROM `AR_CALC_BONUS_FW` `CBFW` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`CBFW`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `CBFX` FROM `AR_CALC_BONUS_FX` `CBFX` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`CBFX`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `CBGL` FROM `AR_CALC_BONUS_GL` `CBGL` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`CBGL`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `CBGX` FROM `AR_CALC_BONUS_GX` `CBGX` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`CBGX`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `CBLS` FROM `AR_CALC_BONUS_LS` `CBLS` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`CBLS`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `CBLX` FROM `AR_CALC_BONUS_LX` `CBLX` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`CBLX`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `CBQY` FROM `AR_CALC_BONUS_QY` `CBQY` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`CBQY`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `CBST` FROM `AR_CALC_BONUS_STANDARD` `CBST` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`CBST`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `CBTG` FROM `AR_CALC_BONUS_TG` `CBTG` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`CBTG`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `CBVIP` FROM `AR_CALC_BONUS_VIP` `CBVIP` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`CBVIP`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `CBXF` FROM `AR_CALC_BONUS_XF` `CBXF` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`CBXF`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `CBYC` FROM `AR_CALC_BONUS_YC` `CBYC` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`CBYC`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `CBYJ` FROM `AR_CALC_BONUS_YJ` `CBYJ` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`CBYJ`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `CMBU` FROM `AR_CALC_MONTH_BONUS_USER` `CMBU` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`CMBU`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `FB` FROM `AR_FLOW_BONUS` `FB` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`FB`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `FC` FROM `AR_FLOW_CF` `FC` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`FC`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `FDZ` FROM `AR_FLOW_DEDUCT_ZR` `FDZ` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`FDZ`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `FEP` FROM `AR_FLOW_EXCHANGE_POINTS` `FEP` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`FEP`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `FLX` FROM `AR_FLOW_LX` `FLX` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`FLX`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `FRP` FROM `AR_FLOW_RECONSUME_POINTS` `FRP` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`FRP`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `FW` FROM `AR_FLOW_WALLET` `FW` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`FW`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `HB` FROM `AR_HISTORY_BONUS` `HB` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`HB`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `UPEP` FROM `AR_USER_PERIOD_EXCHANGE_POINTS` `UPEP` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`UPEP`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `UPP` FROM `AR_USER_PERIOD_POINTS` `UPP` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`UPP`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `AW` FROM `AR_WITHDRAW` `AW` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`AW`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `AT` FROM `AR_TRANSFER` `AT` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`AT`.`OUT_UID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `ABA` FROM `AR_BALANCE_AUDIT` `ABA` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`ABA`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `R` FROM `AR_RECHARGE` `R` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`R`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ DELETE `ASM` FROM `AR_SCORE_MONTH` `ASM` INNER JOIN `AR_USER` `U` ON `U`.`ID`=`ASM`.`USER_ID`
|
|
|
+ WHERE `U`.`USER_NAME` = `UNUMBER`;
|
|
|
+
|
|
|
+ IF t_error = 1 THEN
|
|
|
+ ROLLBACK;
|
|
|
+ ELSE
|
|
|
+ COMMIT;
|
|
|
+ END IF;
|
|
|
+ select t_error; -- 返回标识位的结果集
|
|
|
+END ;;
|
|
|
+DELIMITER ;
|
|
|
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
|
|
+/*!50003 SET character_set_client = @saved_cs_client */ ;
|
|
|
+/*!50003 SET character_set_results = @saved_cs_results */ ;
|
|
|
+/*!50003 SET collation_connection = @saved_col_connection */ ;
|
|
|
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
|
|
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
|
|
|
+/*!50003 DROP PROCEDURE IF EXISTS `CONFOUNDING_DATA` */;
|
|
|
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
|
|
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
|
|
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
|
|
+/*!50003 SET character_set_client = utf8mb4 */ ;
|
|
|
+/*!50003 SET character_set_results = utf8mb4 */ ;
|
|
|
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
|
|
+DELIMITER ;;
|
|
|
+CREATE DEFINER=`babysbreath`@`%` PROCEDURE `CONFOUNDING_DATA`()
|
|
|
+BEGIN
|
|
|
+ #Routine body goes here...
|
|
|
+ UPDATE AR_BALANCE_AUDIT SET CREATE_REMARK = '';
|
|
|
+
|
|
|
+ UPDATE AR_CALC_BONUS SET LAST_REAL_NAME = CONCAT(LAST_USER_NAME,'REAL_NAME'),LAST_REC_REAL_NAME = CONCAT(LAST_REC_USER_NAME,'REAL_NAME'),LAST_CON_REAL_NAME = CONCAT(LAST_CON_USER_NAME,'REAL_NAME');
|
|
|
+
|
|
|
+ UPDATE AR_FLOW_BONUS SET REMARK ='';
|
|
|
+
|
|
|
+ UPDATE AR_FLOW_WALLET SET REMARK ='';
|
|
|
+
|
|
|
+ UPDATE AR_ORDER SET CONSIGNEE = CONCAT(USER_NAME,'CONSIGNEE_NAME'),MOBILE = '18888888888',ADDRESS = 'Virtual Address';
|
|
|
+
|
|
|
+ UPDATE AR_ORDER_DEC SET MOBILE = '18888888888',CONSIGNEE = CONCAT(USER_NAME,'CONSIGNEE_NAME'),ADDRESS = 'Virtual Address';
|
|
|
+
|
|
|
+ UPDATE AR_ORDER_SHOP SET MOBILE = '18888888888',CONSIGNEE = CONCAT(USER_NAME,'CONSIGNEE_NAME'),ADDRESS = 'Virtual Address';
|
|
|
+
|
|
|
+ UPDATE AR_RECEIVE_ADDRESS SET CONSIGNEE = CONCAT(USER_NAME,'CONSIGNEE_NAME'),MOBILE = '18888888888',ADDRESS = 'Virtual Address';
|
|
|
+
|
|
|
+ UPDATE AR_RECHARGE SET REAL_NAME = USER_ID;
|
|
|
+
|
|
|
+ UPDATE AR_TRANSFER SET LAST_OUT_REAL_NAME = CONCAT(LAST_OUT_USER_NAME,'REAL_NAME'),LAST_IN_REAL_NAME = CONCAT(LAST_IN_USER_NAME,'REAL_NAME'),REMARK = '';
|
|
|
+
|
|
|
+ UPDATE AR_USER SET REAL_NAME = CONCAT(USER_NAME,'REAL_NAME'),MOBILE = '18888888888',ADDRESS = 'Virtual Address';
|
|
|
+
|
|
|
+END ;;
|
|
|
+DELIMITER ;
|
|
|
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
|
|
+/*!50003 SET character_set_client = @saved_cs_client */ ;
|
|
|
+/*!50003 SET character_set_results = @saved_cs_results */ ;
|
|
|
+/*!50003 SET collation_connection = @saved_col_connection */ ;
|
|
|
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
|
|
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
|
|
|
+/*!50003 DROP PROCEDURE IF EXISTS `QTRCALC` */;
|
|
|
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
|
|
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
|
|
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
|
|
+/*!50003 SET character_set_client = utf8mb4 */ ;
|
|
|
+/*!50003 SET character_set_results = utf8mb4 */ ;
|
|
|
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
|
|
+DELIMITER ;;
|
|
|
+CREATE DEFINER=`babysbreath`@`%` PROCEDURE `QTRCALC`(IN `PCPID` INT)
|
|
|
+LABEL: BEGIN
|
|
|
+-- DECLARE QTRSTARTPID, QTRSTARTMONTH, THISYEAR, THISMONTH, MISMONTH INT;
|
|
|
+
|
|
|
+DECLARE TBONUS,BONUSPERU DECIMAL; -- 奖金总额,每份奖金
|
|
|
+DECLARE QTRSTARTMONTH, THISYEAR, THISMONTH, MISMONTH INT; -- 这个月
|
|
|
+
|
|
|
+-- DECLARE OCROWN1NUM,OCROWN2NUM,OCROWN3NUM,OCROWN4NUM,OCROWN5NUM,OCROWN6NUM,OCROWN7NUM INT; -- 各星级的人数,原始不加权
|
|
|
+-- DECLARE CROWN1U, CROWN2U, CROWN3U, CROWN4U, CROWN5U, CROWN6U, CROWN7U INT; -- 各星级的人数(加权)
|
|
|
+
|
|
|
+DECLARE TOTALU INT; -- 加权的总份数
|
|
|
+
|
|
|
+DECLARE MAXID, USERTBID INT;
|
|
|
+DECLARE Q, R INT;
|
|
|
+
|
|
|
+START TRANSACTION;
|
|
|
+-- 日志;
|
|
|
+DELETE FROM AR_QTR_CALC_RECORD ;
|
|
|
+CALL QTRCALCRECORD(-1,'开始',PCPID,NOW());
|
|
|
+COMMIT;
|
|
|
+
|
|
|
+CALL QTRCLEAN(PCPID);
|
|
|
+CALL QTRCALCRECORD(1,'清除数据',PCPID,NOW());
|
|
|
+COMMIT;
|
|
|
+
|
|
|
+SELECT
|
|
|
+ CALC_YEAR, CALC_MONTH, IS_MONTH INTO THISYEAR, THISMONTH, MISMONTH FROM AR_PERIOD WHERE PERIOD_NUM = PCPID;
|
|
|
+
|
|
|
+CALL QTRCALCRECORD(2,'初始化',PCPID,NOW());
|
|
|
+COMMIT;
|
|
|
+
|
|
|
+-- 查看是否季度结
|
|
|
+
|
|
|
+IF(THISMONTH!=3 AND THISMONTH!=6 AND THISMONTH!=9 AND THISMONTH!=12) OR MISMONTH!=1 THEN
|
|
|
+ CALL QTRCALCRECORD(12,'非季结,结束',PCPID,NOW());
|
|
|
+ COMMIT;
|
|
|
+ LEAVE LABEL;
|
|
|
+END IF;
|
|
|
+
|
|
|
+CALL QTRCALCRECORD(3,'计算总奖金',PCPID,NOW());
|
|
|
+COMMIT;
|
|
|
+
|
|
|
+-- 按照条件,查询当前季度所有月的总PV,计算总奖金
|
|
|
+SET QTRSTARTMONTH = THISMONTH - 2;
|
|
|
+
|
|
|
+SELECT
|
|
|
+ SUM(PV_PCS) * 0.02
|
|
|
+INTO TBONUS
|
|
|
+ FROM AR_PERF_MONTH
|
|
|
+WHERE CALC_MONTH >= CONCAT(THISYEAR, lpad(QTRSTARTMONTH,2,0)) AND CALC_MONTH <= CONCAT(THISYEAR, lpad(THISMONTH,2,0));
|
|
|
+
|
|
|
+CALL QTRCALCRECORD(4,'计算总人数及加权',PCPID,NOW());
|
|
|
+COMMIT;
|
|
|
+
|
|
|
+
|
|
|
+-- 查找,所有星级用户
|
|
|
+INSERT INTO AR_QTR_CALC_WEIGHT
|
|
|
+ SELECT
|
|
|
+ NULL AS ID,
|
|
|
+ QY.USER_ID,
|
|
|
+ MAX(CL.SORT) AS MAX_SORT,
|
|
|
+ (MAX(CL.SORT) - 1)/2 + 1 AS WEIGHT,
|
|
|
+ PERIOD_NUM,
|
|
|
+ CALC_MONTH,
|
|
|
+ CALC_YEAR
|
|
|
+ FROM
|
|
|
+ AR_CALC_BONUS_QY AS QY
|
|
|
+ INNER JOIN
|
|
|
+ AR_CROWN_LEVEL AS CL
|
|
|
+ ON QY.LAST_CROWN_LV = CL.ID
|
|
|
+ INNER JOIN
|
|
|
+ AR_USER AS U
|
|
|
+ ON QY.USER_ID = U.ID
|
|
|
+
|
|
|
+ WHERE
|
|
|
+ QY.LAST_CROWN_LV != (SELECT ID FROM AR_CROWN_LEVEL WHERE SORT = 0)
|
|
|
+ AND U.DEC_LV = '67ABCE0ECE705575E055736AECE8644D'
|
|
|
+ AND QY.CALC_MONTH >= CONCAT(THISYEAR, lpad(QTRSTARTMONTH,2,0))
|
|
|
+ AND QY.CALC_MONTH <= CONCAT(THISYEAR, lpad(THISMONTH,2,0))
|
|
|
+
|
|
|
+ GROUP BY USER_ID, CALC_MONTH;
|
|
|
+
|
|
|
+COMMIT;
|
|
|
+
|
|
|
+INSERT INTO AR_QTR_CALC_SCORE
|
|
|
+ SELECT
|
|
|
+ NULL AS ID,
|
|
|
+ USER_ID,
|
|
|
+ COUNT(*) AS CNT,
|
|
|
+ SUM(WEIGHT) AS SCORE,
|
|
|
+ CALC_MONTH,
|
|
|
+ CALC_YEAR
|
|
|
+ FROM
|
|
|
+ AR_QTR_CALC_WEIGHT
|
|
|
+ GROUP BY USER_ID;
|
|
|
+
|
|
|
+COMMIT;
|
|
|
+
|
|
|
+SELECT SUM(SCORE) INTO TOTALU FROM AR_QTR_CALC_SCORE;
|
|
|
+
|
|
|
+SET BONUSPERU = TBONUS / TOTALU;
|
|
|
+
|
|
|
+
|
|
|
+CALL QTRCALCRECORD(5,'计算每一份奖金',PCPID,NOW());
|
|
|
+COMMIT;
|
|
|
+
|
|
|
+INSERT INTO AR_QTR_CALC_USER
|
|
|
+ SELECT
|
|
|
+ NULL AS ID,
|
|
|
+ SC.USER_ID,
|
|
|
+ BONUSPERU * SC.SCORE AS AMOUNT,
|
|
|
+ CALC_YEAR,
|
|
|
+ CALC_MONTH,
|
|
|
+ PCPID AS PERIOD_NUM
|
|
|
+ FROM
|
|
|
+ AR_QTR_CALC_SCORE AS SC;
|
|
|
+
|
|
|
+CALL QTRCALCRECORD(6,'写入user表',PCPID,NOW());
|
|
|
+
|
|
|
+COMMIT;
|
|
|
+
|
|
|
+INSERT INTO AR_CALC_BONUS_QUARTER
|
|
|
+ SELECT
|
|
|
+ NULL AS ID,
|
|
|
+ AU.USER_ID,
|
|
|
+ AU.AMOUNT AS ORI_BONUS,
|
|
|
+ 0 AS MANAGE_TAX,
|
|
|
+ AU.AMOUNT,
|
|
|
+ 0 AS RECONSUME_POINTS,
|
|
|
+ U.DEC_LV,
|
|
|
+ AU.CALC_MONTH,
|
|
|
+ AU.PERIOD_NUM,
|
|
|
+ NOW() AS CREATE_AT
|
|
|
+ FROM
|
|
|
+ AR_QTR_CALC_USER AS AU
|
|
|
+ LEFT JOIN
|
|
|
+ AR_USER AS U
|
|
|
+ ON AU.USER_ID = U.ID;
|
|
|
+
|
|
|
+CALL QTRCALCRECORD(20,'写入季度奖金表',PCPID,NOW());
|
|
|
+COMMIT;
|
|
|
+
|
|
|
+END ;;
|
|
|
+DELIMITER ;
|
|
|
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
|
|
+/*!50003 SET character_set_client = @saved_cs_client */ ;
|
|
|
+/*!50003 SET character_set_results = @saved_cs_results */ ;
|
|
|
+/*!50003 SET collation_connection = @saved_col_connection */ ;
|
|
|
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
|
|
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ;
|
|
|
+/*!50003 DROP PROCEDURE IF EXISTS `QTRCALCRECORD` */;
|
|
|
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
|
|
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
|
|
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
|
|
+/*!50003 SET character_set_client = utf8mb4 */ ;
|
|
|
+/*!50003 SET character_set_results = utf8mb4 */ ;
|
|
|
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
|
|
+DELIMITER ;;
|
|
|
+CREATE DEFINER=`babysbreath`@`%` PROCEDURE `QTRCALCRECORD`(IN `PID` INT, IN `PEVENT` VARCHAR ( 255 ), IN `PCPID` INT, IN `PNOW` DATETIME)
|
|
|
+BEGIN
|
|
|
+ INSERT INTO AR_QTR_CALC_RECORD ( ID, EVENT, CREATION_TIME, CALC_PERIOD_ID )
|
|
|
+ VALUES
|
|
|
+ ( PID, PEVENT, NOW(), PCPID );
|
|
|
+
|
|
|
+END ;;
|
|
|
+DELIMITER ;
|
|
|
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
|
|
+/*!50003 SET character_set_client = @saved_cs_client */ ;
|
|
|
+/*!50003 SET character_set_results = @saved_cs_results */ ;
|
|
|
+/*!50003 SET collation_connection = @saved_col_connection */ ;
|
|
|
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
|
|
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
|
|
|
+/*!50003 DROP PROCEDURE IF EXISTS `QTRCLEAN` */;
|
|
|
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
|
|
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
|
|
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
|
|
+/*!50003 SET character_set_client = utf8mb4 */ ;
|
|
|
+/*!50003 SET character_set_results = utf8mb4 */ ;
|
|
|
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
|
|
+DELIMITER ;;
|
|
|
+CREATE DEFINER=`babysbreath`@`%` PROCEDURE `QTRCLEAN`(IN `PCPID` INT)
|
|
|
+BEGIN-- 删除当期奖金
|
|
|
+ DELETE
|
|
|
+ FROM
|
|
|
+ AR_CALC_BONUS_QUARTER
|
|
|
+ WHERE
|
|
|
+ PERIOD_NUM >= PCPID;
|
|
|
+ TRUNCATE
|
|
|
+ AR_QTR_CALC_USER;
|
|
|
+ TRUNCATE
|
|
|
+ AR_QTR_CALC_WEIGHT;
|
|
|
+ TRUNCATE
|
|
|
+ AR_QTR_CALC_SCORE;
|
|
|
+END ;;
|
|
|
+DELIMITER ;
|
|
|
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
|
|
+/*!50003 SET character_set_client = @saved_cs_client */ ;
|
|
|
+/*!50003 SET character_set_results = @saved_cs_results */ ;
|
|
|
+/*!50003 SET collation_connection = @saved_col_connection */ ;
|
|
|
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
|
|
+/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ;
|
|
|
+/*!50003 DROP PROCEDURE IF EXISTS `UPPERCASE` */;
|
|
|
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
|
|
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
|
|
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
|
|
+/*!50003 SET character_set_client = utf8mb4 */ ;
|
|
|
+/*!50003 SET character_set_results = utf8mb4 */ ;
|
|
|
+/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
|
|
+DELIMITER ;;
|
|
|
+CREATE DEFINER=`babysbreath`@`%` 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 ;
|
|
|
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
|
|
+/*!50003 SET character_set_client = @saved_cs_client */ ;
|
|
|
+/*!50003 SET character_set_results = @saved_cs_results */ ;
|
|
|
+/*!50003 SET collation_connection = @saved_col_connection */ ;
|
|
|
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
|
|
+
|
|
|
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
|
|
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
|
|
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
|
|
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
|
|
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
|
|
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
|
|
+
|
|
|
+-- Dump completed on 2022-10-08 2:33:02
|