认清现实,放弃幻想,准备斗争

前端整合

投资

pages/lend/_id.vue

   //投资commitInvest() {//校验用户是否登录let userInfo = cookie.get('userInfo')// console.log(typeof userInfo)// console.log(!userInfo) //trueif (!userInfo) {window.location.href = '/login'return}//校验当前用户是否是投资人let userInfoObj = JSON.parse(userInfo)if (userInfoObj.userType == 2) {//借款人this.$message.error('借款人无法投资')return}console.log(this.lend.investAmount)console.log(this.invest.investAmount)console.log(this.lend.amount)//判断标的是否超卖:标的已投金额 + 本次投资金额 > 标的总金额if (this.lend.investAmount + Number(this.invest.investAmount) >this.lend.amount) {this.$message.error('标的可投资金额不足')return}//是否是100的整数倍// console.log(this.invest.investAmount)// console.log(Number(this.invest.investAmount))// console.log(typeof Number(this.invest.investAmount))// returnif (Number(this.invest.investAmount) === 0 ||this.invest.investAmount % this.lend.lowestAmount != 0) {this.$message.error(`投资金额必须是${this.lend.lowestAmount}的整数倍`)return}//余额的判断if (this.invest.investAmount > this.account) {this.$message.error('余额不足,请充值')return}//数据提交this.$alert('<div style="size: 18px;color: red;">您即将前往汇付宝确认标的</div>','前往汇付宝资金托管平台',{dangerouslyUseHTMLString: true,confirmButtonText: '立即前往',callback: (action) => {console.log('action', action)if (action === 'confirm') {this.invest.lendId = this.lend.idthis.$axios.$post('/api/core/lendItem/auth/commitInvest', this.invest).then((response) => {// console.log(response.data.formStr)// debuggerdocument.write(response.data.formStr)})}},})}

定义回调接口

1、controller

LendItemController中创建回调方法 

@ApiOperation("会员投资异步回调")
@PostMapping("/notify")
public String notify(HttpServletRequest request) {Map<String, Object> paramMap = RequestHelper.switchMap(request.getParameterMap());log.info("用户投资异步回调:" + JSON.toJSONString(paramMap));//校验签名 P2pInvestNotifyVoif(RequestHelper.isSignEquals(paramMap)) {if("0001".equals(paramMap.get("resultCode"))) {lendItemService.notify(paramMap);} else {log.info("用户投资异步回调失败:" + JSON.toJSONString(paramMap));return "fail";}} else {log.info("用户投资异步回调签名错误:" + JSON.toJSONString(paramMap));return "fail";}return "success";
}

2、Service

实现回调的业务

接口:LendItemService

void notify(Map<String, Object> paramMap);

实现:LendItemServiceImpl

@Resource
private TransFlowService transFlowService;@Resource
private UserAccountMapper userAccountMapper;@Transactional(rollbackFor = Exception.class)
@Override
public void notify(Map<String, Object> paramMap) {log.info("投标成功");//获取投资编号String agentBillNo = (String)paramMap.get("agentBillNo");boolean result = transFlowService.isSaveTransFlow(agentBillNo);if(result){log.warn("幂等性返回");return;}//获取用户的绑定协议号String bindCode = (String)paramMap.get("voteBindCode");String voteAmt = (String)paramMap.get("voteAmt");//修改商户系统中的用户账户金额:余额、冻结金额userAccountMapper.updateAccount(bindCode, new BigDecimal("-" + voteAmt), new BigDecimal(voteAmt));//修改投资记录的投资状态改为已支付LendItem lendItem = this.getByLendItemNo(agentBillNo);lendItem.setStatus(1);//已支付baseMapper.updateById(lendItem);//修改标的信息:投资人数、已投金额Long lendId = lendItem.getLendId();Lend lend = lendMapper.selectById(lendId);lend.setInvestNum(lend.getInvestNum() + 1);lend.setInvestAmount(lend.getInvestAmount().add(lendItem.getInvestAmount()));lendMapper.updateById(lend);//新增交易流水TransFlowBO transFlowBO = new TransFlowBO(agentBillNo,bindCode,new BigDecimal(voteAmt),TransTypeEnum.INVEST_LOCK,"投资项目编号:" + lend.getLendNo() + ",项目名称:" + lend.getTitle());transFlowService.saveTransFlow(transFlowBO);
}

3、辅助方法

LendItemServiceImpl

private LendItem getByLendItemNo(String lendItemNo) {
    QueryWrapper<LendItem> queryWrapper = new QueryWrapper();
    queryWrapper.eq("lend_item_no", lendItemNo);
    return baseMapper.selectOne(queryWrapper);

}

上篇链接:

微服务项目:尚融宝(52)(核心业务流程:投标(3))_一个风轻云淡的博客-CSDN博客https://blog.csdn.net/m0_62436868/article/details/126984370?spm=1001.2014.3001.5501

今日分享

一、计算机系统的基本组成

1、一个完整的计算机系统都由硬件系统和软件系统组成。

2、硬件是指组成一台计算机的各种物理装置,包括运算器、控制器、存储器、输入设备和输出设备五部分,各部分通过总线连接在一起。

3、软件是指在硬件系统上运行的各种程序和相关资料,包括系统软件和应用软件两部分。

二、计算机硬件系统

仅有硬件而没有任何软件支持的计算机称为裸机。硬件是计算机的躯体,软件是计算机的灵魂,二者缺一不可。

第一台计算机ENIAC诞生至今,计算机硬件结构仍是依据冯·诺依曼提出的存储程序工作原理。

微服务项目:尚融宝(53)(核心业务流程:投标(4))相关推荐

  1. 微服务项目:尚融宝(59)(核心业务流程:提现和还款(2))

    认清现实,放弃幻想,准备斗争 需求 放款成功后,会生成借款人的还款计划与出借人的回款计划,然后借款人按照还款计划日期操作还款即可. 参考<汇付宝商户账户技术文档>3.14还款扣款,处理业务 ...

  2. 微服务项目:尚融宝(1)(项目介绍)

    从今天开始做一个全栈项目,巩固学完的springcloud,复习之前学过的ssm mp redis MQ等知识点,拿下我的第二个项目 .技术栈中未掌握部署,计划到项目后期部署的时候,再自学一波 放弃幻 ...

  3. 【金融项目】尚融宝项目(三)

    5.管理平台前端搭建 5.1.搭建管理平台前端程序 5.1.1.vue-element-admin vue-element-admin是基于element-ui 的一套后台管理系统集成方案. GitH ...

  4. 【金融项目】尚融宝项目(十四)

    27.放款 27.1.需求介绍 27.1.1.平台放款 1.需求描述 标的募资时间到,平台会操作放款或撤标,如果达到放款条件则操作放款 说明:撤标过程与放款过程一致,处理业务相对简单,只是将出借金额返 ...

  5. 【金融项目】尚融宝项目(十六)

    31.RabbitMQ 31.1.整合Rabbit MQ发送短信 31.1.1.MQ服务器设置 1.访问MQ控制台 http://192.168.100.103:15672 2.创建用户 创建用户 s ...

  6. 【金融项目】尚融宝项目(十五)

    29.提现和还款 29.1.提现 29.1.1.需求 放款成功后,借款人可以申请提现. 参考<汇付宝商户账户技术文档>3.15用户申请提现 29.1.2.前端整合 pages/user/w ...

  7. 【金融项目】尚融宝项目(十)

    19.申请借款额度 19.1.需求介绍 19.1.1.借款人申请额度 1.需求描述 平台管理员根据借款人个人信息设置积分,通过积分规则借款人可以获取额度. 2.相关数据库表 19.1.2.具体步骤 s ...

  8. 【金融项目】尚融宝项目(四)

    6.Alibaba EasyExcel 6.1.EasyExcel简介 6.1.1.Excel导入导出的应用场景 6.1.1.1.数据导入 减轻录入工作量 6.1.1.2.数据导出 统计信息归档 6. ...

  9. 【金融项目】尚融宝项目(六)

    11.访问令牌 11.1.单点登录 11.1.1.用户身份认证 11.1.1.1.单一服务器模式 一般过程如下: 用户向服务器发送用户名和密码. 验证服务器后,相关数据(如用户名,用户角色等)将保存在 ...

最新文章

  1. 怎么查看linux是不是as7u4,Linux下搭建Android开发环境
  2. 链表--只知道当前节点指针删除当前节点
  3. gitlab上传文件到group_gitlab恢复备份数据
  4. 从源码深处体验Spring核心技术--基于注解的IOC初始化
  5. 学习ActiveMQ(一):安装与启动
  6. GCD 代码以及GCD思想
  7. 70个具有商业实战性的精品Android源码
  8. Atitit.研发管理--提升效率--软件开发方法DSM总结o99
  9. java heapdump 分析工具_Java Heap dump文件分析工具jhat简介
  10. 文字转语音软件真人发声(声音自然有感情)
  11. python差异性分析_能用SPSS进行差异显著性分析吗
  12. Proteus8.9 VSM Studio PIC编译器仿真PIC16F887A_系列a02_PIC_GPS数据接受反馈HTC仿真
  13. nginx 499状态码
  14. Vue的ESLint-stylelint-prettier联合配置
  15. 【dbv】使用dbv工具检验数据文件是否有坏块
  16. 学习笔记—Vue项目启动时卡在98% after emitting CopyPlugin的问题解决
  17. 职场上35岁以上的人都去哪了?
  18. c语言开机自启动 linux_Linux开机启动程序rc.local
  19. php网站mercury安装,mercury无线路由器怎么安装 mercury无线路由器安装方法
  20. 时尚圈元宇宙,时尚圈和元宇宙的碰撞会带来怎样的火花?时尚圈元宇宙,时尚圈和元宇宙的碰撞会带来怎样的火花?

热门文章

  1. 海外调查问卷中的站点查
  2. EditPlus配色Monokai风格
  3. 在制作 GIF 图片的时候,这10个注意事项帮你做得更好
  4. 艾美捷Cas9 ELISA检测试剂盒的制备和文献参考
  5. 利用QQ群传播淫秽色情信息 杨某被抓
  6. shell之常用小工具(sort、uniq、tr、cut)
  7. 关于PCB的工艺注意事项
  8. 关于fanuc 机床联网的研究
  9. HTML通过JavaScript表单验证
  10. 云服务器win系统下架设手游白日门传奇详细教程