CALCCLEAN.sql 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. DROP PROCEDURE IF EXISTS `CALCCLEAN`;
  2. delimiter ;;
  3. CREATE PROCEDURE `CALCCLEAN`(IN `PCPID` INT)
  4. BEGIN-- 删除当期奖金
  5. DELETE
  6. FROM
  7. AR_BS_BONUS_103_CALC;
  8. DELETE
  9. FROM
  10. AR_BS_BONUS_103_TEST
  11. WHERE
  12. CALC_PERIOD_ID >= PCPID;-- 使用的奖金表
  13. DELETE
  14. FROM
  15. AR_CALC_BONUS_BS
  16. WHERE
  17. PERIOD_NUM >= PCPID;
  18. DELETE
  19. FROM
  20. AR_CALC_BONUS_BS_DETAIL
  21. WHERE
  22. PERIOD_NUM >= PCPID;-- 删除当期网体
  23. DELETE
  24. FROM
  25. AR_BS_BONUS_103_CALC_NET;
  26. DELETE
  27. FROM
  28. AR_BS_BONUS_103_TEST_NET
  29. WHERE
  30. CALC_PERIOD_ID >= PCPID;-- 删除拨出表
  31. DELETE
  32. FROM
  33. AR_CALC_BONUS_BS_STAT
  34. WHERE
  35. PERIOD_NUM >= PCPID;-- 删除明细表
  36. DELETE
  37. FROM
  38. AR_CALC_BONUS_BS_DETAIL_BONUS
  39. WHERE
  40. PERIOD_NUM >= PCPID;-- 删除日志
  41. DELETE
  42. FROM
  43. AR_CALC_BONUS_BS_DETAIL_GPV
  44. WHERE
  45. PERIOD_NUM >= PCPID;
  46. END
  47. ;;
  48. delimiter ;
  49. -- ----------------------------
  50. -- Procedure structure for CALCDELNET
  51. -- ----------------------------
  52. DROP PROCEDURE IF EXISTS `CALCDELNET`;
  53. delimiter ;;
  54. CREATE PROCEDURE `CALCDELNET`(IN `PLAYER` INT)
  55. BEGIN
  56. DECLARE
  57. FLAG INT DEFAULT 0;
  58. DECLARE
  59. MUSERID,
  60. MMAXUSERID,
  61. MINTRODUCERID VARCHAR ( 50 );
  62. /*DECLARE
  63. MGPV DECIMAL ( 10, 2 );
  64. DECLARE
  65. DN CURSOR FOR SELECT
  66. USER_ID
  67. FROM
  68. AR_BS_BONUS_103_CALC_NET
  69. WHERE
  70. LAYER = PLAYER
  71. AND USER_TYPE = 0;
  72. DECLARE
  73. CONTINUE HANDLER FOR NOT FOUND
  74. SET FLAG = 1;*/
  75. START TRANSACTION;-- 打开游标
  76. /*OPEN DN;-- 获取结果
  77. L2 :
  78. LOOP
  79. FETCH DN INTO MUSERID;
  80. IF
  81. FLAG = 1 THEN-- 当无法FETCH会触发HANDLER CONTINUE
  82. LEAVE L2;
  83. END IF;-- 查询需要删除会员的推荐人ID
  84. SELECT
  85. T.INTRODUCER_ID INTO MINTRODUCERID
  86. FROM
  87. AR_BS_BONUS_103_CALC_NET T
  88. WHERE
  89. T.USER_ID = MUSERID;-- 更改需要删除会员第一代的推荐人ID以及层数
  90. UPDATE AR_BS_BONUS_103_CALC_NET T
  91. SET T.INTRODUCER_ID = MINTRODUCERID,
  92. T.LAYER = T.LAYER - 1
  93. WHERE
  94. T.INTRODUCER_ID = MUSERID;-- 关闭游标
  95. END LOOP;
  96. CLOSE DN;*/
  97. UPDATE AR_BS_BONUS_103_CALC_NET
  98. SET DELETED = 1
  99. WHERE
  100. LAYER = PLAYER
  101. AND USER_TYPE = 0;
  102. UPDATE AR_BS_BONUS_103_CALC_NET T1
  103. INNER JOIN AR_BS_BONUS_103_CALC_NET T2
  104. ON T1.INTRODUCER_ID = T2.USER_ID AND T1.LAYER = PLAYER+1 AND T2.LAYER = PLAYER AND T2.USER_TYPE = 0
  105. SET T1.INTRODUCER_ID = T2.INTRODUCER_ID,T1.LAYER = PLAYER;
  106. DELETE
  107. FROM
  108. AR_BS_BONUS_103_CALC_NET
  109. WHERE
  110. LAYER = PLAYER
  111. AND USER_TYPE = 0
  112. AND DELETED = 1;
  113. COMMIT;
  114. END
  115. ;;