BEGIN

DECLARE aid INT;#游标赋值用
DECLARE max_uid INT;#结束条件
DECLARE done INT default '0' ;
DECLARE u_uid INT;
DECLARE u_leader_uid INT;
DECLARE f_fl_value INT;
DECLARE extcredits INT;
#declare CONTINUE HANDLER FOR SQLSTATE '02000' SET done = null;
DECLARE curb CURSOR FOR SELECT u.uid ,u.leader_uid,f.fl_value FROM pre_adjfx_temp_uid as u,pre_adjfx_fl as f where u.uid in (SELECT uid FROM pre_adjfx_fl where DATE_SUB(CURDATE(), INTERVAL 1 DAY) <= date(datatime)) and f.status ='2' and u.uid=f.uid;#游标赋值
DECLARE cura CURSOR FOR SELECT uid FROM pre_aljsfx_user; #生成代理上线用户游标
declare CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1; #游标结束条件只能定义在声明游标之后 否则报错

#也可以这么写

#DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = null;

#DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = TRUE;

OPEN cura;
FETCH cura INTO aid;
WHILE ( done <>1) DO

  CALL fx_leader_user(aid);
  SET done =0;#因为上一句的执行把done变为1了,所以必须加上这句复原,否则只执行一次
  FETCH cura INTO aid;#如果cura游标到底了就是0
END WHILE;
#SELECT 'end';
#SELECT 'kkkk';

SET done =0;
CLOSE cura;
OPEN curb;
FETCH curb INTO u_uid,u_leader_uid,f_fl_value;
WHILE ( done <>1) DO
SELECT extcredits1 into extcredits FROM pre_common_member_count where uid=u_leader_uid;#查是否还有仓储卷
IF extcredits > 0 THEN
UPDATE pre_common_member_count SET extcredits1= extcredits1 -(f_fl_value0.003), extcredits2= extcredits2 + (f_fl_value0.003) WHERE (uid=u_leader_uid);
INSERT INTO pre_adjfx_fl (uid, order_id, fl_value,status) VALUES (u_leader_uid, '11111', (f_fl_value*0.003),'3');
END IF;
SET done =0;
FETCH curb INTO u_uid,u_leader_uid,f_fl_value;

END WHILE;

CLOSE curb;

END