曾经写的存储过程

时间:2020-07-28 21:12:41

自动撤消存储过程

DELIMITER $$ 
-- 调用例子
-- call Auto_UndoOrder(@sumss);
-- SELECT @sumss
CREATE DEFINER=`root`@`localhost` PROCEDURE `Auto_UndoOrder`(OUT txt varchar(100))
    COMMENT '自动撤消任务'
BEGIN
    #Routine body goes here...
    -- 游标所使用变量需要在定义游标之前申明
    declare counter int ;    
    declare rwid int(11);    
    declare kf_role_id int default 4; -- 客服发单者 
    declare myrole_id int; -- 客服发单者 
    declare Result int(11); 
    DECLARE renwu_number_total int DEFAULT 0;
    declare order_sn varchar(30); 
    declare userid int(11);   
    declare renwu_oyalties FLOAT(8,2); 
    declare renwu_bond FLOAT(8,2); 
    declare renwu_scharge FLOAT(8,2); 
    declare inputtime int(11); 
    declare inputtime2 int(11); 
    declare is_renwu_bond int(1); 
    declare is_renwu_scharge int(1); 
    declare mystatus int(2); 
    declare renwu_undo FLOAT(8,2); 
    declare return_amount FLOAT(8,2) default 0;# 要退的费用合计
    DECLARE nowtimestamp int DEFAULT UNIX_TIMESTAMP(); -- 当前时间戳  
     
     
    declare xsuserid int(11);   
    declare xs_amount FLOAT(10,2); 
     
    #查询已超交稿时间的任务总数
 
    -- 遍历数据结束标志 注意位置顺序  
    DECLARE done INT DEFAULT FALSE;  
    -- 注意用别名 因为id在上面已经有定义所以需要使用表的别名区别 
    declare _Renwu CURSOR FOR SELECT a.* FROM (SELECT
                                                    rwt.id,
                                                    rwt.status,
                                                    rwt.order_sn,
                                                    rwt.userid,
                                                    rwt.renwu_oyalties,
                                                    rwt.renwu_bond,
                                                    rwt.renwu_scharge,
                                                    rwt.inputtime,
                                                    case when rwt.renwu_undo > 0 THEN (rwt.inputtime + rwt.renwu_undo*3600) ELSE rwt.inputtime END as inputtime2,
                                                    rwt.renwu_undo,
                                                    rwt.is_renwu_bond,
                                                    rwt.is_renwu_scharge
                                                FROM
                                                    springcms_renwu rwt
                                                WHERE
                                                    `status` in ('10','30')) a where a.inputtime2 < nowtimestamp;
    -- 将结束标志绑定到游标   
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; #如果读取完,设置done为True 
    set counter = 0;# 计数,循环了几次  
    open _Renwu;  
        repeat  
            set counter = counter +1;  
            fetch _Renwu into rwid,mystatus,order_sn,userid,renwu_oyalties,renwu_bond,renwu_scharge,inputtime,inputtime2,renwu_undo,is_renwu_bond,is_renwu_scharge;  
                -- select rwid ;  
                -- concat_ws函数用逗号后面的参数隔开 concat_ws(',','12','33','332') --> 12,33,332 
                -- 如果不加判断,会多循环一次。最后一次读取游标时,done已经是True,但是进入循环之前是0,故可以进入循环,会多循环一次;
                if done<>TRUE then  
                    -- 调试用
                    SET txt=concat_ws(',',rwid,mystatus,order_sn,userid,renwu_oyalties,renwu_bond,renwu_scharge,inputtime,inputtime2,renwu_undo,is_renwu_bond,is_renwu_scharge); 
                    SELECT txt;
                    -- 处理自己代码
                     
                    -- 查询当前所在组
                    select u.role_id into myrole_id FROM springcms_user u where id=userid;
                    -- 生成自动撤消任务退费记录
                    if myrole_id<>kf_role_id then
                        -- 客服发单者不退稿费,因为就没交稿费
                        set return_amount = renwu_oyalties;
                    end if;
                    if is_renwu_bond<>1 THEN
                        set return_amount = return_amount + renwu_bond;
                    end if;
                    if is_renwu_scharge<>1 THEN
                        set return_amount = return_amount + renwu_scharge;
                    end if;
                    INSERT INTO `springcms_user_xiaofei` (
                                                            `id`,
                                                            `uid`,
                                                            `type`,
                                                            `amount`,
                                                            `order_id`,
                                                            `ip`,
                                                            `remark`,
                                                            `create_time`,
                                                            `status`
                                                        )
                                                        VALUES
                                                            (
                                                                NULL,
                                                                userid,
                                                                '11',
                                                                return_amount,
                                                                order_sn,
                                                                '127.0.0.1',
                                                                '系统自动撤消任务,退还费用',
                                                                nowtimestamp,
                                                                '1'
                                                            );
                    -- 更新发单者用户余额
                    UPDATE `springcms_user` SET `amount`=amount+return_amount WHERE `id` = userid;
                    -- 发送站内信
                    INSERT INTO `springcms_user_msgtext` (
                                                            `type`,
                                                            `title`,
                                                            `note`,
                                                            `senduserid`,
                                                            `rwid`,
                                                            `userids`,
                                                            `issysadd`,
                                                            `islock`,
                                                            `addtime`,
                                                            `mestype`
                                                        )
                                                        VALUES
                                                            (
                                                                '8',
                                                                '费用退还!',
                                                                concat('系统自动撤消任务,退还',return_amount,'元,任务订单号是',order_sn,',点击<a href=\"http://20180308.aaa.com/index.php?g=Renwu&m=Renwu&a=detail&order_sn=',order_sn,'\" target=\"_blank\">查看</a>'),
                                                                '1',
                                                                '0',
                                                                userid,
                                                                '1',
                                                                '2',
                                                                nowtimestamp,
                                                                '0'
                                                            );
                    SET Result=LAST_INSERT_ID(); -- 获取插入的ID值
                    INSERT INTO `springcms_user_msg` (
                                                        `msgid`,
                                                        `userid`,
                                                        `status`,
                                                        `rwid`,
                                                        `datetime`,
                                                        `readtime`
                                                    )
                                                    VALUES
                                                        (Result, userid, '0', '0', '0', '0');
                     
                    if mystatus = 30 THEN
                        SELECT rco.userid,rco.amount INTO xsuserid,xs_amount FROM `springcms_renwu_consult` rco WHERE rco.`rwid` = rwid limit 1;
                        -- 有协商信息
                        SELECT xsuserid;
                        if xsuserid THEN
                            UPDATE `springcms_renwu_consult` SET `returntype`='2',`returntime`=nowtimestamp WHERE `rwid` = rwid;
                            INSERT INTO `springcms_user_xiaofei` (
                                                            `id`,
                                                            `uid`,
                                                            `type`,
                                                            `amount`,
                                                            `order_id`,
                                                            `ip`,
                                                            `remark`,
                                                            `create_time`,
                                                            `status`
                                                        )
                                                        VALUES
                                                            (
                                                                NULL,
                                                                xsuserid,
                                                                '52',
                                                                xs_amount,
                                                                order_sn,
                                                                '127.0.0.1',
                                                                '系统自动撤消任务,退还协商费',
                                                                nowtimestamp,
                                                                '1'
                                                            );
                            UPDATE `springcms_user` SET `amount`=amount+xs_amount WHERE `id` = xsuserid;
                            -- 发送站内信
                            INSERT INTO `springcms_user_msgtext` (
                                                            `type`,
                                                            `title`,
                                                            `note`,
                                                            `senduserid`,
                                                            `rwid`,
                                                            `userids`,
                                                            `issysadd`,
                                                            `islock`,
                                                            `addtime`,
                                                            `mestype`
                                                        )
                                                        VALUES
                                                            (
                                                                '8',
                                                                '费用退还!',
                                                                concat('系统自动撤消任务,退还协商费',xs_amount,'元,任务订单号是',order_sn,',点击<a href=\"http://20180308.aaa.com/index.php?g=Renwu&m=Renwu&a=detail&order_sn=',order_sn,'\" target=\"_blank\">查看</a>'),
                                                                '1',
                                                                '0',
                                                                xsuserid,
                                                                '1',
                                                                '2',
                                                                nowtimestamp,
                                                                '0'
                                                            );
                            SET Result=LAST_INSERT_ID(); -- 获取插入的ID值
                            INSERT INTO `springcms_user_msg` (
                                                        `msgid`,
                                                        `userid`,
                                                        `status`,
                                                        `rwid`,
                                                        `datetime`,
                                                        `readtime`
                                                    )
                                                    VALUES
                                                        (Result, xsuserid, '0', '0', '0', '0');
                        end if;
                    end if;
                    -- 生成任务变更日志
                    INSERT INTO `springcms_renwu_log` (`inputtime`,`ip`,`userid`,`type`,`rwid`,`info`) VALUES (nowtimestamp,'127.0.0.1','1','60',rwid,'系统自动撤消');-- 以管理员操作
                    -- 更新任务状态
                    UPDATE `springcms_renwu` SET `status`='70',`undo_time`=nowtimestamp WHERE `id` = rwid;
                     
                end if;
            until done  
        end repeat;  
    -- 注意关闭游标  
    close _Renwu; 
END $$
DELIMITER ;

自动撤消存储过程-不发站内信

DELIMITER $$ 
-- 调用例子
-- call Auto_UndoOrder(@sumss);
-- SELECT @sumss
CREATE DEFINER=`root`@`localhost` PROCEDURE `Auto_UndoOrder`(OUT txt varchar(100))
    COMMENT '自动撤消任务'
BEGIN
    #Routine body goes here...
    -- 游标所使用变量需要在定义游标之前申明
    declare counter int ;    
    declare rwid int(11);    
    declare kf_role_id int default 4; -- 客服发单者 
    declare myrole_id int; -- 客服发单者 
    declare Result int(11); 
    DECLARE renwu_number_total int DEFAULT 0;
    declare order_sn varchar(30); 
    declare userid int(11);   
    declare renwu_oyalties FLOAT(8,2); 
    declare renwu_bond FLOAT(8,2); 
    declare renwu_scharge FLOAT(8,2); 
    declare inputtime int(11); 
    declare inputtime2 int(11); 
    declare is_renwu_bond int(1); 
    declare is_renwu_scharge int(1); 
    declare renwu_undo FLOAT(8,2); 
    declare return_amount FLOAT(8,2) default 0;# 要退的费用合计
    DECLARE nowtimestamp int DEFAULT UNIX_TIMESTAMP(); -- 当前时间戳  
    #查询已超交稿时间的任务总数
 
    -- 遍历数据结束标志 注意位置顺序  
    DECLARE done INT DEFAULT FALSE;  
    -- 注意用别名 因为id在上面已经有定义所以需要使用表的别名区别 
    declare _Renwu CURSOR FOR SELECT a.* FROM (SELECT
                                                    rwt.id,
                                                    rwt.order_sn,
                                                    rwt.userid,
                                                    rwt.renwu_oyalties,
                                                    rwt.renwu_bond,
                                                    rwt.renwu_scharge,
                                                    rwt.inputtime,
                                                    case when rwt.renwu_undo > 0 THEN (rwt.inputtime + rwt.renwu_undo*3600) ELSE rwt.inputtime END as inputtime2,
                                                    rwt.renwu_undo,
                                                    rwt.is_renwu_bond,
                                                    rwt.is_renwu_scharge
                                                FROM
                                                    springcms_renwu rwt
                                                WHERE
                                                    `status` = '10') a where a.inputtime2 < nowtimestamp;
    -- 将结束标志绑定到游标   
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; #如果读取完,设置done为True 
    set counter = 0;# 计数,循环了几次  
    open _Renwu;  
        repeat  
            set counter = counter +1;  
            fetch _Renwu into rwid,order_sn,userid,renwu_oyalties,renwu_bond,renwu_scharge,inputtime,inputtime2,renwu_undo,is_renwu_bond,is_renwu_scharge;  
                -- select rwid ;  
                -- concat_ws函数用逗号后面的参数隔开 concat_ws(',','12','33','332') --> 12,33,332 
                -- 如果不加判断,会多循环一次。最后一次读取游标时,done已经是True,但是进入循环之前是0,故可以进入循环,会多循环一次;
                if done<>TRUE then  
                    -- 调试用
                    SET txt=concat_ws(',',rwid,order_sn,userid,renwu_oyalties,renwu_bond,renwu_scharge,inputtime,inputtime2,renwu_undo,is_renwu_bond,is_renwu_scharge); 
                    SELECT txt;
                    -- 处理自己代码
                     
                    -- 查询当前所在组
                    select u.role_id into myrole_id FROM springcms_user u where id=userid;
                    -- 生成自动撤消任务退费记录
                    if myrole_id<>kf_role_id then
                        -- 客服发单者不退稿费,因为就没交稿费
                        set return_amount = renwu_oyalties;
                    end if;
                    if is_renwu_bond<>1 THEN
                        set return_amount = return_amount + renwu_bond;
                    end if;
                    if is_renwu_scharge<>1 THEN
                        set return_amount = return_amount + renwu_scharge;
                    end if;
                    INSERT INTO `springcms_user_xiaofei` (
                                                            `id`,
                                                            `uid`,
                                                            `type`,
                                                            `amount`,
                                                            `order_id`,
                                                            `ip`,
                                                            `remark`,
                                                            `create_time`,
                                                            `status`
                                                        )
                                                        VALUES
                                                            (
                                                                NULL,
                                                                userid,
                                                                '11',
                                                                return_amount,
                                                                order_sn,
                                                                '127.0.0.1',
                                                                '系统自动撤消任务(order_sn),退还费用',
                                                                nowtimestamp,
                                                                '1'
                                                            );
                    -- 更新发单者用户余额
                    UPDATE `springcms_user` SET `amount`=amount+return_amount WHERE `id` = userid;
                     
                    -- 生成任务变更日志
                    INSERT INTO `springcms_renwu_log` (`inputtime`,`ip`,`userid`,`type`,`rwid`,`info`) VALUES (nowtimestamp,'127.0.0.1','1','70',rwid,'系统自动撤消');-- 以管理员操作
                    -- 更新任务状态
                    UPDATE `springcms_renwu` SET `status`='70',`undo_time`=nowtimestamp WHERE `id` = rwid;
                end if;
            until done  
        end repeat;  
    -- 注意关闭游标  
    close _Renwu; 
END $$
DELIMITER ;

自动结算存储过程

DELIMITER $$ 
-- 调用例子
-- call Auto_Settlement(@sumss);
-- SELECT @sumss
CREATE DEFINER=`root`@`localhost` PROCEDURE `Auto_Settlement`(OUT txt varchar(100))
    COMMENT '自动结算超时任务'
BEGIN
    #Routine body goes here...
    declare kf_role_id int default 4; -- 客服发单者  客服发单组结算时需要扣稿费
    DECLARE rwid int;
    declare order_sn varchar(30); 
    declare userid int(11);   
    declare myrole_id int(11); 
    declare Resultid int;  
    declare renwu_xs_oyalties FLOAT(8,2); 
    declare renwu_xs_bond FLOAT(8,2); 
    declare xsfdzxs FLOAT(8,2); 
    declare renwu_oyalties FLOAT(8,2); 
    declare is_renwu_bond int(1); 
    declare renwu_bond FLOAT(8,2); 
    declare pay_xs_amount FLOAT(8,2) default 0;# 写手
    declare pay_fdz_amount FLOAT(8,2) default 0;# 发单者
    declare return_fdz_bond FLOAT(8,2) default 0;# 发单者保证金
    DECLARE nowtimestamp int DEFAULT UNIX_TIMESTAMP(); -- 当前时间戳 
     
     
    declare my_oyalties FLOAT(8,2);
    declare my_userid int(11);
    declare my_order_id int(11); 
    declare my_is_bond int(1); 
    declare my_bond FLOAT(8,2); 
     
    -- 遍历数据结束标志 注意位置顺序  
    DECLARE done INT DEFAULT FALSE;  
    -- 注意用别名 因为id在上面已经有定义所以需要使用表的别名区别 
    declare _Renwu_S CURSOR FOR SELECT
                                    rw.id,
                                    rw.userid,
                                    rw.order_sn,
                                    rw.xsfdzxs,
                                    rw.renwu_xs_oyalties,
                                    rw.renwu_xs_bond,
                                    rw.renwu_oyalties,
                                    rw.is_renwu_bond,
                                    rw.renwu_bond
                                FROM
                                    `springcms_renwu` as rw
                                WHERE
                                    rw.renwu_settle <= nowtimestamp
                                AND rw.`status` IN (20, 50);
 
    -- 将结束标志绑定到游标   
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; #如果读取完,设置done为True 
    open _Renwu_S;  
        repeat   
            fetch _Renwu_S into rwid,userid,order_sn,xsfdzxs,renwu_xs_oyalties,renwu_xs_bond,renwu_oyalties,is_renwu_bond,renwu_bond;
                -- select rwid ;  
                -- concat_ws函数用逗号后面的参数隔开 concat_ws(',','12','33','332') --> 12,33,332 
                -- 如果不加判断,会多循环一次。最后一次读取游标时,done已经是True,但是进入循环之前是0,故可以进入循环,会多循环一次;
                if done<>TRUE then  
                    -- 调试用
                    SET txt=concat_ws(',',rwid,order_sn,userid,xsfdzxs,renwu_xs_oyalties,renwu_xs_bond,renwu_oyalties,is_renwu_bond,renwu_bond); 
                    SELECT txt;
                     
                    -- 查询当前所在组
                    select u.role_id into myrole_id FROM springcms_user u where u.id = userid;
                    -- 处理发单者支付稿费问题
                    if myrole_id=kf_role_id THEN
                        -- 客服发单者因为就没交稿费,所以需要扣除
                        if renwu_xs_oyalties>0 THEN
                            -- 协商费用
                            set pay_fdz_amount = ceil(renwu_xs_oyalties*xsfdzxs); -- 需要乘系数
                        ELSE
                            set pay_fdz_amount = renwu_oyalties;
                        end if;
                        -- 扣费记录
                        INSERT INTO `springcms_user_xiaofei` (
                                                                `id`,
                                                                `uid`,
                                                                `type`,
                                                                `amount`,
                                                                `order_id`,
                                                                `ip`,
                                                                `remark`,
                                                                `create_time`,
                                                                `status`
                                                            )
                                                            VALUES
                                                            (
                                                                NULL,
                                                                userid,
                                                                '20',
                                                                pay_fdz_amount,
                                                                order_sn,
                                                                '127.0.0.1',
                                                                '结算任务稿费扣除',
                                                                nowtimestamp,
                                                                '1'
                                                            );
                        -- 更新发单者用户余额
                        UPDATE `springcms_user` SET `amount`=amount-pay_fdz_amount WHERE `id` = userid;
                        -- 发送站内信
                        INSERT INTO `springcms_user_msgtext` (
                                                                `type`,
                                                                `title`,
                                                                `note`,
                                                                `senduserid`,
                                                                `rwid`,
                                                                `userids`,
                                                                `issysadd`,
                                                                `islock`,
                                                                `addtime`,
                                                                `mestype`
                                                            )
                                                            VALUES
                                                            (
                                                                '8',
                                                                '结算消费',
                                                                concat('结算任务(',order_sn,')支付写手稿费',pay_fdz_amount,'元'),
                                                                '1',
                                                                '0',
                                                                userid,
                                                                '1',
                                                                '2',
                                                                nowtimestamp,
                                                                '0'
                                                            );
                        SET Resultid=LAST_INSERT_ID(); -- 获取插入的ID值
                        INSERT INTO `springcms_user_msg` (
                                                            `msgid`,
                                                            `userid`,
                                                            `status`,
                                                            `rwid`,
                                                            `datetime`,
                                                            `readtime`
                                                        )
                                                        VALUES
                                                            (Resultid, userid, '0', '0', '0', '0');
                    end if;
                     
                    -- 退给发单者保证金
                    if is_renwu_bond<>1 THEN
                        -- 更新发单者用户余额
                        if renwu_xs_bond>0 THEN
                            -- set return_fdz_bond=ceil(renwu_xs_bond*xsfdzxs); -- 需要乘系数
                            set return_fdz_bond=renwu_bond;
                        ELSE
                            set return_fdz_bond=renwu_bond;
                        end if;
                        UPDATE `springcms_user` SET `amount`=amount+return_fdz_bond WHERE `id` = userid;
                        -- 生成退保证金记录
                        INSERT INTO `springcms_user_xiaofei` (
                                                                `id`,
                                                                `uid`,
                                                                `type`,
                                                                `amount`,
                                                                `order_id`,
                                                                `ip`,
                                                                `remark`,
                                                                `create_time`,
                                                                `status`
                                                            )
                                                            VALUES
                                                            (
                                                                NULL,
                                                                userid,
                                                                '30',
                                                                return_fdz_bond,
                                                                order_sn,
                                                                '127.0.0.1',
                                                                '结算任务退保证金',
                                                                nowtimestamp,
                                                                '1'
                                                            );
                        -- 更新发单者用户余额
                        UPDATE `springcms_user` SET `amount`=amount+return_fdz_bond WHERE `id` = userid;
                        -- 发送站内信
                        INSERT INTO `springcms_user_msgtext` (
                                                                `type`,
                                                                `title`,
                                                                `note`,
                                                                `senduserid`,
                                                                `rwid`,
                                                                `userids`,
                                                                `issysadd`,
                                                                `islock`,
                                                                `addtime`,
                                                                `mestype`
                                                            )
                                                            VALUES
                                                            (
                                                                '8',
                                                                '退回保证金',
                                                                concat('结算任务(',order_sn,')退回保证金',return_fdz_bond,'元'),
                                                                '1',
                                                                '0',
                                                                userid,
                                                                '1',
                                                                '2',
                                                                nowtimestamp,
                                                                '0'
                                                            );
                        SET Resultid=LAST_INSERT_ID(); -- 获取插入的ID值
                        INSERT INTO `springcms_user_msg` (
                                                            `msgid`,
                                                            `userid`,
                                                            `status`,
                                                            `rwid`,
                                                            `datetime`,
                                                            `readtime`
                                                        )
                                                        VALUES
                                                            (Resultid, userid, '0', '0', '0', '0');
                         
                    end if;
                     
                    -- 处理写手部分--------------------------------------------------------------------------------------------------------------------------
                    SELECT xso.order_id as my_order_id,xso.user_id,xso.oyalties,xso.bond,xso.is_bond INTO my_order_id,my_userid,my_oyalties,my_bond,my_is_bond FROM `springcms_xsorder` xso where xso.rwid=rwid;
                     
                    -- 获得稿费记录
                    INSERT INTO `springcms_user_xiaofei` (
                                                            `id`,
                                                            `uid`,
                                                            `type`,
                                                            `amount`,
                                                            `order_id`,
                                                            `ip`,
                                                            `remark`,
                                                            `create_time`,
                                                            `status`
                                                        )
                                                        VALUES
                                                        (
                                                            NULL,
                                                            my_userid,
                                                            '21',
                                                            my_oyalties,
                                                            order_sn,
                                                            '127.0.0.1',
                                                            '结算稿费应得',
                                                            nowtimestamp,
                                                            '1'
                                                        );
                    -- 更新写手用户余额
                    UPDATE `springcms_user` SET `amount`=amount+my_oyalties WHERE `id` = my_userid;                    
                    -- 发送站内信
                    INSERT INTO `springcms_user_msgtext` (
                                                            `type`,
                                                            `title`,
                                                            `note`,
                                                            `senduserid`,
                                                            `rwid`,
                                                            `userids`,
                                                            `issysadd`,
                                                            `islock`,
                                                            `addtime`,
                                                            `mestype`
                                                        )
                                                        VALUES
                                                        (
                                                            '8',
                                                            '结算任务所得',
                                                            concat('结算任务(',order_sn,')所得稿费',my_oyalties,'元'),
                                                            '1',
                                                            '0',
                                                            my_userid,
                                                            '1',
                                                            '2',
                                                            nowtimestamp,
                                                            '0'
                                                        );
                    SET Resultid=LAST_INSERT_ID(); -- 获取插入的ID值
                    INSERT INTO `springcms_user_msg` (
                                                        `msgid`,
                                                        `userid`,
                                                        `status`,
                                                        `rwid`,
                                                        `datetime`,
                                                        `readtime`
                                                    )
                                                    VALUES
                                                        (Resultid, my_userid, '0', '0', '0', '0');
                    -- 退保证金处理
                    if my_is_bond<>1 THEN
                        -- 退还写手保证金记录
                        INSERT INTO `springcms_user_xiaofei` (
                                                                `id`,
                                                                `uid`,
                                                                `type`,
                                                                `amount`,
                                                                `order_id`,
                                                                `ip`,
                                                                `remark`,
                                                                `create_time`,
                                                                `status`
                                                            )
                                                            VALUES
                                                            (
                                                                NULL,
                                                                my_userid,
                                                                '21',
                                                                my_bond,
                                                                order_sn,
                                                                '127.0.0.1',
                                                                '结算任务退保证金',
                                                                nowtimestamp,
                                                                '1'
                                                            );
                        -- 更新写手用户余额
                        UPDATE `springcms_user` SET `amount`=amount+my_bond WHERE `id` = my_userid;
                        -- 发送站内信
                        INSERT INTO `springcms_user_msgtext` (
                                                                `type`,
                                                                `title`,
                                                                `note`,
                                                                `senduserid`,
                                                                `rwid`,
                                                                `userids`,
                                                                `issysadd`,
                                                                `islock`,
                                                                `addtime`,
                                                                `mestype`
                                                            )
                                                            VALUES
                                                            (
                                                                '8',
                                                                '退回保证金',
                                                                concat('结算任务(',order_sn,')退回保证金',my_bond,'元'),
                                                                '1',
                                                                '0',
                                                                my_userid,
                                                                '1',
                                                                '2',
                                                                nowtimestamp,
                                                                '0'
                                                            );
                        SET Resultid=LAST_INSERT_ID(); -- 获取插入的ID值
                        INSERT INTO `springcms_user_msg` (
                                                            `msgid`,
                                                            `userid`,
                                                            `status`,
                                                            `rwid`,
                                                            `datetime`,
                                                            `readtime`
                                                        )
                                                        VALUES
                                                            (Resultid, my_userid, '0', '0', '0', '0');
                    end if;
                    UPDATE `springcms_xsorder` SET `order_status`='40' WHERE `order_id` = my_order_id;-- 更新状态
                    UPDATE `springcms_renwu` SET `status`='60' WHERE `id` = rwid;-- 更新任务状态
                    -- 生成任务日志
                    INSERT INTO `springcms_renwu_log`(`userid`,`inputtime`,`ip`,`type`,`rwid`,`info`) VALUES(userid,nowtimestamp,'127.0.0.1',60,rwid,'确认结算');   
                end if;
            until done  
        end repeat;  
    -- 注意关闭游标  
    close _Renwu_S; 
END $$
DELIMITER ;

自动处理事件(通过事件调用存储过程)

DELIMITER $$ 
CREATE DEFINER=`root`@`localhost` EVENT `event_minute` ON SCHEDULE EVERY 2 MINUTE STARTS '2018-01-17 14:49:43' ON COMPLETION NOT PRESERVE ENABLE COMMENT '一分钟一次。' DO BEGIN 
    -- INSERT INTO USER(name, address,addtime) VALUES('test2','test2',now());
    CALL Auto_Settlement(@txt);
    CALL Auto_UndoOrder(@txt2);
    INSERT INTO springcms_event_log(txt1, txt2,addtime) VALUES(@txt,@txt2,now());    
END $$
DELIMITER ;

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值