| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715 |
- -- 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
|