From ab5b2fc056eedd8cb42bfcfb428aee642eb0b3a9 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 26 Aug 2022 17:46:06 +0800
Subject: [PATCH] 20220822
---
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 72 ++++++++++++++++++++++-------------
1 files changed, 45 insertions(+), 27 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
index 2f2ff02..41c1090 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -17,6 +17,7 @@
import cc.mrbird.febs.mall.vo.OrderDetailVo;
import cc.mrbird.febs.mall.vo.OrderListVo;
import cc.mrbird.febs.mall.vo.OrderRefundVo;
+import cc.mrbird.febs.pay.model.AgreementPayDto;
import cc.mrbird.febs.pay.model.AgreementSignDto;
import cc.mrbird.febs.pay.model.UnipayDto;
import cc.mrbird.febs.pay.service.IPayService;
@@ -39,6 +40,7 @@
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
+import java.text.DecimalFormat;
import java.util.*;
/**
@@ -217,7 +219,7 @@
@Transactional(rollbackFor = Exception.class)
public Map<String, Object> payOrder(PayOrderDto payOrderDto) {
MallMember member = LoginUserUtil.getLoginUser();
- MallOrderInfo orderInfo = this.baseMapper.selectOrderByMemberIdAndId(member.getId(), payOrderDto.getId());
+ MallOrderInfo orderInfo = this.baseMapper.selectOrderDetailsById(payOrderDto.getId());
if (orderInfo == null || AppContants.DEL_FLAG_Y == orderInfo.getDelFlag()) {
throw new FebsException("订单不存在");
}
@@ -257,7 +259,7 @@
if("fail" == unipayStr){
throw new FebsException("支付失败");
}else{
- JSONUtil.parseObj(unipayStr);
+// JSONUtil.parseObj(unipayStr);
JSONObject jsonObject = JSONUtil.parseObj(unipayStr);
payResultStr = (String) jsonObject.get("r7_TrxNo");
rcResult = (String) jsonObject.get("rc_Result");
@@ -333,31 +335,47 @@
case "5":
AgreementSignDto agreementSignDto = new AgreementSignDto();
agreementSignDto.setOrderNo(orderInfo.getOrderNo());
- unipayService.agreementSign(agreementSignDto);
-// UnipayDto unipayDto = new UnipayDto();
-//// unipayDto.setAmount(new BigDecimal("0.01"));
-// unipayDto.setAmount(orderInfo.getAmount());
-// unipayDto.setFrpCode("ALIPAY_H5");
-// unipayDto.setTradeMerchantNo("777180800385820");
-// unipayDto.setOrderNo(orderInfo.getOrderNo());
-// List<MallOrderItem> items = orderInfo.getItems();
-// if(CollUtil.isEmpty(items)){
-// unipayDto.setProductName("商品");
-// }else{
-// unipayDto.setProductName(items.get(0).getGoodsName());
-// }
-// String agreementSignStr = "";
-// if("fail" == unipayStr){
-// throw new FebsException("支付失败");
-// }else{
-// JSONUtil.parseObj(unipayStr);
-// JSONObject jsonObject = JSONUtil.parseObj(unipayStr);
-// payResultStr = (String) jsonObject.get("r7_TrxNo");
-// rcResult = (String) jsonObject.get("rc_Result");
-// }
- orderInfo.setPayOrderNo(payResultStr);
- orderInfo.setPayMethod("支付宝支付");
-// agentProducer.sendOrderReturn(orderInfo.getId());
+ agreementSignDto.setSmsCode(payOrderDto.getSmsCode());
+ String agreementSignStr = unipayService.agreementSign(agreementSignDto);
+ if("fail" == agreementSignStr){
+ throw new FebsException("支付失败");
+ }else{
+ JSONObject jsonObject = JSONUtil.parseObj(agreementSignStr);
+ payResultStr = (String) jsonObject.get("biz_code");
+ String signBizMsg = (String) jsonObject.get("biz_msg");
+ if("JS000000" != payResultStr){
+ throw new FebsException(signBizMsg);
+ }
+ }
+
+ AgreementPayDto agreementPayDto = new AgreementPayDto();
+ agreementPayDto.setOrderNo(orderInfo.getOrderNo());
+
+ BigDecimal value = orderInfo.getAmount().setScale(2, BigDecimal.ROUND_DOWN);
+ DecimalFormat decimalFormat = new DecimalFormat("0.00#");
+ String strVal = decimalFormat.format(value);
+ agreementPayDto.setOrderAmount(new BigDecimal(strVal));
+ agreementPayDto.setOrderTime(DateUtil.now());
+ List<MallOrderItem> itemsGoods = orderInfo.getItems();
+ if(CollUtil.isEmpty(itemsGoods)){
+ agreementPayDto.setOrderDesc("商品");
+ }else{
+ agreementPayDto.setOrderDesc(itemsGoods.get(0).getGoodsName());
+ }
+ agreementPayDto.setBankNo(payOrderDto.getBankNo());
+ String agreementPayStr = unipayService.agreementPay(agreementPayDto);
+
+ if("fail".equals(agreementSignStr)){
+ throw new FebsException("支付失败");
+ }else{
+ JSONObject jsonObject = JSONUtil.parseObj(agreementPayStr);
+ payResultStr = (String) jsonObject.get("biz_code");
+ String payBizMsg = (String) jsonObject.get("biz_msg");
+ if(!"JS000000".equals(payResultStr)){
+ throw new FebsException(payBizMsg);
+ }
+ }
+ orderInfo.setPayMethod("快捷协议支付");
break;
default:
--
Gitblit v1.9.1