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 ...
随机推荐
- jmeter在返回的json串中提取需要的值
接口测试时我们需要对某条信息进行修改,如我们先创建了一篇文章,然后进行修改操作 我们就需要找到该文章的唯一标志,如id 示例:我们要将下图返回的json 中id进行提取 注:可输入$.加需要的key即 ...
- python 全栈开发,Day106(结算中心(详细),立即支付)
昨日内容回顾 1. 为什么要开发路飞学城? 提供在线教育的学成率: 特色: 学,看视频,单独录制增加趣味性. 练,练习题 改,改学生代码 管,管理 测,阶段考核 线下:8次留级考试 2. 组织架构 - ...
- JS高级 - 面向对象3(面向过程改写面向对象)
改写: 1.前提:所有东西都在 onload 里 2.改写:不能有函数嵌套,可以有全局变量 onload --> 构造函数 全局变量 --> 属性 函数 --> 方法 4.改错: t ...
- .NetCore源码阅读笔记系列之Security (四) Authentication & AddJwtBearer
接下来我们在来看下AddJwtBearer,这个与AddOpenIdConnect不太一样,后者是远程发起身份认证请求是一种主动发起式的,多用于web等客户端,验证发生在身份认证服务端,而前者是一种被 ...
- python算法双指针问题:使用列表和数组模拟单链表
这个很多基础算法,python已内部实现了. 所以,要想自己实现链表这些功能时, 反而需要自己来构造链表的数据结构. 当然,这是python灵活之处, 也是python性能表达不如意的来源. valu ...
- Git强制更新本地库和冲突解决
1.You have not concluded your merge. (MERGE_HEAD exists) 本地有修改和提交,如何强制用远程的库更新.出现这种情况一般是git本地有commit, ...
- Spring MVC的前端控制器模式
前端控制器模式 spring mvc也是依赖servlet,所以spring mvc的请求处理是从一个servlet开始,这个servlet就是DispatcherServlet.前端控制器模式(Fr ...
- 【Java】 剑指offer(62) 圆圈中最后剩下的数字
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 0, 1, …, n-1这n个数字排成一个圆圈,从数字0开始每 ...
- (转)final修饰基本类型和引用类型变量的区别
原文:http://blog.csdn.net/linhao19891124/article/details/52971045 当使用final修饰基本类型变量时,不能对基本类型变量重新赋值,因此基本 ...
- HDU1532 网络流最大流【EK算法】(模板题)
<题目链接> 题目大意: 一个农夫他家的农田每次下雨都会被淹,所以这个农夫就修建了排水系统,还聪明的给每个排水管道设置了最大流量:首先输入两个数n,m ;n为排水管道的数量,m为节点的数量 ...