ng二星下属业绩上推规则变更.sql 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. /*
  2. MySQL Backup
  3. Database: ng110test
  4. Backup Time: 2023-03-21 14:24:48
  5. */
  6. SET FOREIGN_KEY_CHECKS=0;
  7. DROP PROCEDURE IF EXISTS `ng110test`.`CALC20_0`;
  8. CREATE DEFINER=`admin`@`%` PROCEDURE `CALC20_0`(IN PLAYER INT,IN `PCPID` INT)
  9. BEGIN
  10. DECLARE
  11. FLAG INT DEFAULT 0;
  12. DECLARE
  13. MUSERID,
  14. MMAXUSERID VARCHAR ( 50 );
  15. DECLARE
  16. MGPV DECIMAL ( 10, 2 );
  17. DECLARE
  18. ACHIEVEPV DECIMAL ( 10, 2 );
  19. DECLARE
  20. MC CURSOR FOR SELECT
  21. C.USER_ID
  22. FROM
  23. AR_BS_BONUS_103_CALC_NET C
  24. WHERE
  25. C.DIRECTLY_UNDER >= 2
  26. AND C.USER_TYPE = 0
  27. AND LAYER = PLAYER;
  28. DECLARE
  29. CONTINUE HANDLER FOR NOT FOUND
  30. SET FLAG = 1;-- 打开游标
  31. OPEN MC;-- 获取结果
  32. L2 :
  33. LOOP
  34. FETCH MC INTO MUSERID;
  35. IF
  36. FLAG = 1 THEN-- 当无法FETCH会触发HANDLER CONTINUE
  37. LEAVE L2;
  38. END IF;-- 这里是为了显示获取结果
  39. SELECT
  40. MIN( GPV ) INTO MGPV
  41. FROM
  42. AR_BS_BONUS_103_CALC_NET C
  43. WHERE
  44. C.INTRODUCER_ID = MUSERID
  45. AND C.USER_TYPE >= 10;
  46. SELECT
  47. MAX( USER_ID ) INTO MMAXUSERID
  48. FROM
  49. AR_BS_BONUS_103_CALC_NET C
  50. WHERE
  51. C.INTRODUCER_ID = MUSERID
  52. AND C.GPV = MGPV;
  53. SELECT
  54. ACHIEVE_PV INTO ACHIEVEPV
  55. FROM
  56. AR_EMPLOY_LEVEL
  57. WHERE ID ='E121497617216708615';
  58. IF MGPV >= ACHIEVEPV THEN
  59. UPDATE AR_BS_BONUS_103_CALC_NET C
  60. SET C.USER_TYPE = 20,
  61. C.GPV = ACHIEVEPV
  62. WHERE
  63. USER_ID = MUSERID;
  64. UPDATE AR_BS_BONUS_103_CALC_NET C
  65. SET C.GPV = MGPV - ACHIEVEPV
  66. WHERE
  67. USER_ID = MMAXUSERID;
  68. INSERT INTO AR_CALC_BONUS_BS_DETAIL_GPV(USER_ID,INTRODUCER_ID,GPV,PERIOD_NUM)
  69. VALUES(MMAXUSERID,MUSERID,ACHIEVEPV,PCPID);
  70. ELSE
  71. UPDATE AR_BS_BONUS_103_CALC_NET C
  72. SET C.USER_TYPE = 20,
  73. C.GPV = MGPV
  74. WHERE
  75. USER_ID = MUSERID;
  76. UPDATE AR_BS_BONUS_103_CALC_NET C
  77. SET C.GPV = 0
  78. WHERE
  79. USER_ID = MMAXUSERID;
  80. INSERT INTO AR_CALC_BONUS_BS_DETAIL_GPV(USER_ID,INTRODUCER_ID,GPV,PERIOD_NUM)
  81. VALUES(MMAXUSERID,MUSERID,MGPV,PCPID);
  82. END IF;
  83. END LOOP;
  84. -- 关闭游标
  85. CLOSE MC;
  86. END;