task_payment_byonlinedown
CREATE DEFINER=`root`@`%` PROCEDURE `vir`.`task_payment_byonlinedown`()
begin
declare _mobile varchar(12) ;
declare _amount decimal(18,4) default 0;
declare _reduce_amount decimal(18,4) default 0;
declare _is_part varchar(12) ;
declare _excute_status varchar(12) ;
declare stop_flag int DEFAULT 0;
declare _app_id varchar(100);
declare _bill_status varchar(12);
declare _app_status varchar(12);
declare _REDUCE_AMOUNT_temp decimal(18,4) default 0;
declare cur1 cursor for select mobile,amount,reduce_amount,is_part,excute_status from task_payment_byonlinedown where excute_status=1;
declare CONTINUE HANDLER FOR SQLSTATE '02000' SET stop_flag=1;
open cur1;
fetch cur1 into _mobile,_amount,_reduce_amount,_is_part,_excute_status;#读取数据到游标
while stop_flag<>1 DO#若游标有下一条记录,循环
select apply_id,REDUCE_AMOUNT into _app_id,_REDUCE_AMOUNT_temp from vir.biz_bill where mobile=_mobile order by create_date desc limit 1;
#部分还款
if(_is_part='0') then
set _app_status =11 ;
set _bill_status=3;
end if;
#全部还款
if(_is_part='1') then
set _app_status =8;
set _bill_status=1;
end if;
#1 biz_apply
UPDATE biz_apply set APPLY_STATUS=_app_status WHERE id = _app_id;
#2 biz_bill
UPDATE biz_bill set
LATE_REPAYMENT_DATE=sysdate(),
LATE_REPQYMENT_AMOUNT=_amount,
REAL_TOTAL_AMOUNT=_amount,
BILL_STATUS=_bill_status,
SETTLE_DATE=sysdate(),
REDUCE_AMOUNT = _REDUCE_AMOUNT_temp+_reduce_amount,
DEMO2 = concat('appid','_',_app_id,'_对公还款_支付宝_还款金额_',_amount,'_减免金额_',_reduce_amount,'_还款时间_',sysdate())
WHERE APPLY_ID = _app_id;
#3biz_bill_detail
update biz_bill_details set
STAGING_STATUS=_bill_status,
UPDATE_DATE=sysdate()
where APPLY_ID=_app_id;
#4 BIZ_REDUCE
insert into BIZ_REDUCE (id,APPLY_ID,REDUCE_TOTAL_AMOUNT,CREATE_DATE) values
( CONVERT(substring(CAST(rand() as char),3, length(CAST(rand() as char))) ,SIGNED),_app_id ,_amount ,sysdate());
update task_payment_byonlinedown set excute_status=0 where excute_status=1 and mobile=_mobile;
fetch cur1 into _mobile,_amount,_reduce_amount,_is_part,_excute_status;
end while;
close cur1;
END
task_payment_byonlinedown的更多相关文章
- mysql存储过程,游标实例
CREATE DEFINER=`root`@`%` PROCEDURE `vir`.`task_payment_byonlinedown`()begin declare _mobile varchar ...
随机推荐
- 常见的MySQL Replication Error
现在不少公司都在用MySQL(master)-->MySQL(slave)的框架,当然也有一主多从的架构,这也是MySQL主从的一个延伸架构;当然也有的公司MySQL主主的架构,MySQL主主架 ...
- 记录片宇宙之the secret of the sun
- canvas绘制简易动画
在canvas画布中制作动画相对来说很简单,实际上就是不断变化的坐标.擦除.重绘的过程 1.使用setInterval方法设置动画的间隔时间. setInterval(code,millisec) s ...
- ERP简介(一)
ERP是针对物资资源管理(物流).人力资源管理(人流).财务资源管理(财流).信息资源管理(信息流)集成一体化的企业管理软件 一:系统模块简介:
- 最近关于mysql的造型,binlog使用,以及阿里云上线数据处理错误导致被处罚的思考
因团队中成员,上线代码时,不小心将数据表中吃掉物理的数据清空,导致被单位处罚,痛定思痛,我们应该如何上线,还需要准备哪些技能? 1.上线时,必须关闭服务,不能一边上线,一边让用户可以继续操作,一边产生 ...
- SpringMVC集成springfox-swagger2自动生成接口文档
本节内容: 什么是Swaggger Springfox与Swagger的关系 SpringMVC集成springfox-swagger2 一.什么是Swaggger Swagger是一个流行的API开 ...
- Ubuntu 安装 OpenMPI
1. 下载OpenMPI 在官网上下载最新版本的安装包,如:openmpi-1.8.4.tar.gz 2. 解压并进行配置 tar -zxvf openmpi-3.0.0.tar.gz cd open ...
- PLSQL程序设计(Oracle)
Hello World set serveroutput on; declare --说明部分 begin --程序 dbms_output.put_line('Hello World'); end; ...
- java实体转json忽略属性
1: import com.alibaba.fastjson.annotation.JSONField; fastjson 过滤指定字段 @JSONField(serialize=false)priv ...
- lnmp thinkphp在linux上支持pathinfo
在lnmp环境中布置thinkphp 默认不支持pathinfo 的 在nginx.conf文件中的server中更改如下 #include enable-php.conf; #布置下面的支持pat ...