Parcourir la source

季度奖存储过程,更改为仅VIP参与

theo il y a 3 ans
Parent
commit
99515943d7
1 fichiers modifiés avec 65 ajouts et 58 suppressions
  1. 65 58
      sql/upgrade/QTRCALC.sql

+ 65 - 58
sql/upgrade/QTRCALC.sql

@@ -24,7 +24,7 @@ CALL QTRCALCRECORD(1,'清除数据',PCPID,NOW());
 COMMIT;
 
 SELECT
- CALC_YEAR, CALC_MONTH, IS_MONTH INTO THISYEAR, THISMONTH, MISMONTH FROM AR_PERIOD WHERE PERIOD_NUM = PCPID;
+    CALC_YEAR, CALC_MONTH, IS_MONTH INTO THISYEAR, THISMONTH, MISMONTH FROM AR_PERIOD WHERE PERIOD_NUM = PCPID;
 
 CALL QTRCALCRECORD(2,'初始化',PCPID,NOW());
 COMMIT;
@@ -33,8 +33,8 @@ 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;
+COMMIT;
+LEAVE LABEL;
 END IF;
 
 CALL QTRCALCRECORD(3,'计算总奖金',PCPID,NOW());
@@ -55,41 +55,47 @@ 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
-	 
-	WHERE
-		QY.LAST_CROWN_LV != (SELECT ID FROM AR_CROWN_LEVEL WHERE SORT = 0)
-
-	GROUP BY USER_ID, CALC_MONTH;
+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;
+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;
@@ -99,38 +105,39 @@ 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;
+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 ;
+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;	
+COMMIT;
 
 END