量化派业务参考代码

测试二级标题

如果 merchant_id 是外部白条,则执行相关逻辑

if(order.getMerchantId() == Constants.BaitiaoMerchant.XINYANG && type == ConsumeType.REPAY){
    debtService.baitiaoOrderDebtNotify(order.getOrderNo(),"NEW_ORDER");
}

说明:重点在 Constants.BaitiaoMerchant.XINYANG ,关注实体类这部分的内容。

根据支付中心的 order_no 的前缀去判断

if (repayOrderNo.startsWith(Constants.BAITIAO_BILL_PREFIX)) { //如果是白条账单制后的还款计划
    return repayNotifyBaitiaoBill(orderNo, repayOrderNo, repaidAt);
} else {
    //没有前缀的是之前的还款计划,按照之前逻辑走
    return repayNotifyBaitiaoOld(orderNo, repayOrderNo, repaidAt);
}

Collectors 在项目中的应用 1:收集成 List

List<Long> planIds = repaymentPlans.stream().map(BaitiaoBillRepaymentPlan::getId).collect(Collectors.toList());

说明:1、使用 map 完成映射,最后收集成 List 对象;

2、因为 id 是自增长不重复的,所以用 List 收集。

Collectors 在项目中的应用 2:收集成 Set

Set<Long> orderIds = repaymentPlans.stream().map(BaitiaoBillRepaymentPlan::getOrderId).collect(Collectors.toSet());

说明:因为 order_id 有可能是重复的,所以用 Set 收集

Supplier 的用法

Supplier<Heavy> supplier = () -> new Heavy();
Supplier<Heavy> supplier = Heavy::new;

发送消息的时候使用异步

@Async

并且,为了不影响主要流程,我们要使用注解 @DummyException,来笑话新添加逻辑抛出的异常。

@DummyException 的作用是消化掉这个方法中抛出的异常,保证新加的代码不会影响到主流程。

发送消息使用的模板代码

@Override
public void baitiaoRePayDebtNotify(String orderNo) {
    // 1、先构造发送消息的对象的内容
    RepaymentMQ repaymentOrderMQ = this.getRepaymentInfoAfterRefund(orderNo);
    // 2、使用 JSON 工具类库将上一步的对象转换为 json 字符串
    String msg = Constants.GSON.toJson(repaymentOrderMQ);
    // 3、使用 RabbitMQ 的模板对象(rabbitTemplate)的 convertAndSend 方法发送消息报文
    rabbitTemplate.convertAndSend(xyqbBaitiaoQueue.getName(),msg);
    LOGGER.info("向债转债权池推送白条还款消息,消息内容-->{}", msg);
}

查询旧的还款计划

Long orderId = baitiaoOrder.getId();
// 查询旧的还款计划 根据 order_id 查询 baitiao_repayment_plan
// 根据 order_id 去查询白条还款计划表
List<BaitiaoRepaymentPlan> baitiaoRepaymentPlans = repaymentPlanRepository.findByOrderId(orderId);

查询新的还款计划

// 查询新的还款计划 根据 baitiao_bill_repayment_plan(该方法中已经完成了还款计划的更新)
List<BaitiaoBillRepaymentPlan> baitiaoBillRepaymentPlanList = baitiaoBillRepaymentPlanRepository.queryRepaymentPlanByOrderIdAndEnableTrue(orderId);

Markdown 测试的更多相关文章

  1. markdown测试

    测试 1.第一点 这一点 代码块 @requires_authorization def somefunc(param1='', param2=0): '''A docstring''' if par ...

  2. 这是一篇markdown测试博客

    欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接 ...

  3. markdown 测试博客发布

    这是一个测试页面 无序列表 tet test 有序列表 特使团 tetst 引用 This is a test 插入图片 插入链接 baidu 粗体 这是粗体 斜体 这是斜体 表格 IP VIP 备注 ...

  4. Markdown测试2

    四级标题 内容测试 内容测试 内容测试 为知笔记发布博客时会添加一些HTML或CSS的标记,会影响文章的摘要显示. A B 一 二 α​" role="presentation&q ...

  5. markdown 测试代码

    这是 H1 这是 H2 这是 H3 这是 H4 这是 H5 这是 H6 A First Level Header A Second Level Header Now is the time for a ...

  6. 基于 Laravel 开发博客应用系列 —— 从测试开始(二):使用Gulp实现自动化测试

    3.使用 Gulp 进行 TDD(测试驱动开发) Gulp 是一个使用 JavaScript 编写的自动化构建工具.用于对前端通用任务(如最小化.压缩.编译)进行自动构建.Gulp 还可以用来监控源代 ...

  7. iOS 使用markdown 实现编辑和预览文本

    注意要点: 1.在iOS 可以依赖UIWebview 来实现 2.丰富的UI样式依赖 html 的样式, js 调用插入markdown内容呈现出来 3.实现markdown编辑快捷键:参考githu ...

  8. HelloDjango 第 09 篇:让博客支持 Markdown 语法和代码高亮

    作者:HelloGitHub-追梦人物 文中涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库 为了让博客文章具有良好的排版,显示更加丰富的格式,我们使用 Markdown 语法来书 ...

  9. Mardown字体颜色、背景色

    Markdown字体颜色.背景色 字体颜色表 Markdwon测试 **粗体文字**,或__加文字__ 加粗 Markdown测试 *斜体文字*, 或_斜体_ 斜体 Markdwon测试 列表: 背景 ...

随机推荐

  1. Tomcat配置多个端口号或多个应用

    一.在Tomcat下配置一个应用服务(service)中,配置多个端口号. 即一个service配置多个端口,项目可以通过多个端口访问. 修改tomcat-home\conf下的server.xml, ...

  2. JSNI GWT中的东东

    二.JavaScript Native InterfaceJavaScript本地接口JSNI.1)声明一个本地方法在JSNI中声明一个本地方法时,使用Java的标准native关键字,就像在JNI( ...

  3. Android之打开闪光灯关键代码

    在AndroidManifest中注册相应的权限: <uses-permission android:name="android.permission.FLASHLIGHT" ...

  4. 教你Mac OS系统四种改动Hosts文件的方法

    使用Mac OS X系统的用户.在某些时候可能遇到了须要改动系统Hosts文件的情况,那么Mac OS系统怎样改动Hosts文件呢?和Windows系统有何差别呢?我们知道事实上改动Hosts文件仅仅 ...

  5. 【MongoDB】在windows平台下mongodb的分片集群(五)

    本篇接着上面的四篇继续讲述在window平台下mongodb的分片集群搭建. 在分片集群中也照样能够创建索引,创建索引的方式与在单独数据库中创建索引的方式一样.因此这不再多说.本篇主要聚焦在分片键的选 ...

  6. change buffer

    https://yq.aliyun.com/articles/222 change buffer: insert buffer delete buffer purge buffer 1.innodb_ ...

  7. 使用vi是方向键变乱码 退格键不能使用的解决方法

    一.编辑/etc/vim/vimrc.tiny 由于/etc/vim/vimrc.tiny的拥有者是root用户,所以要在root的权限下对这个文件进行修改.很简单,这个文件里面的倒数第二句话是“se ...

  8. Mysql新建用户和数据库并授权

    测试环境:Centos 6.3和Mysql 5.3 一.新建用户 //登录MYSQL@>mysql -u root -p@>密码//创建用户mysql> insert into my ...

  9. Linux网络基础

    为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/3840284.html ...

  10. python----------进程、线程、协程

    进程与线程 什么是进程(process)? An executing instance of a program is called a process. Each process provides ...