量化派业务参考代码

测试二级标题

如果 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. List<Map<String,String>>操作(遍历,比较)

    1.List<Map<String,String>>的遍历: Map<String,String> map = new HashMap<String, Str ...

  2. linux系统启动oracle

    linux下启动oracle需要两步:一.启动监听  二.启动服务 一.启动监听 监听命令:lsnrctl ,具体使用方法如下 1.lsnrctl status:检查当前监听器的状态 2.lsnrct ...

  3. NIO组件Selector工作机制详解(上)

    转自:http://blog.csdn.net/haoel/article/details/2224055 一.  前言 自从J2SE 1.4版本以来,JDK发布了全新的I/O类库,简称NIO,其不但 ...

  4. C#截取指定字符串函数

    本文转载:http://www.cnblogs.com/liufei88866/archive/2012/05/12/2497395.html 一.通过函数方式进行获取. public string ...

  5. Java多线程,哲学家就餐问题

    问题描述:一圆桌前坐着5位哲学家,两个人中间有一只筷子,桌子中央有面条.哲学家思考问题,当饿了的时候拿起左右两只筷子吃饭,必须拿到两只筷子才能吃饭.上述问题会产生死锁的情况,当5个哲学家都拿起自己右手 ...

  6. mysql 锁 实验

    CREATE TABLE `kk` ( `a` ) NOT NULL, `b` ) NOT NULL, `c` ) NOT NULL, PRIMARY KEY (`a`), UNIQUE KEY `b ...

  7. /proc/sysrq-trigger

    立即重启计算机      echo "b" > /proc/sysrq-trigger 立即关闭计算机      echo "o" > /proc/ ...

  8. Stream类

    为什么需要 Stream Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念.它也不同于 StAX 对 ...

  9. SQL Server 2008 安装指南

    一.安装需求: 1.硬件需求条件 硬件 需求 处理器 最低:1.4 GHz(x64处理器)注意:Windows Server 2008 for Itanium-Based Systems 版本需要In ...

  10. java io 流基础