From c19dc78c41273727339aeea025b3c75c09454c5a Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Wed, 27 Dec 2023 11:44:56 +0800
Subject: [PATCH] 富文本框输入版本变化
---
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallAppServiceImpl.java | 91 +++++++++++++++++++++++----------------------
1 files changed, 46 insertions(+), 45 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallAppServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallAppServiceImpl.java
index 4480c31..e7e5e2f 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallAppServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallAppServiceImpl.java
@@ -336,21 +336,50 @@
}
@Override
+ @Transactional
public FebsResponse wxCodePay(ApiWxCodePayDto wxCodePayDto) {
Long orderId = wxCodePayDto.getOrderId();
- String wxPayCode = wxCodePayDto.getWxPayCode();
- /**
- * auth_code 扫码支付付款码 微信付款码规则:18位纯数字,前缀以10、11、12、13、14、15开头
- */
- String regex = "^(10|11|12|13|14|15)\\d{16}$";
- boolean flag = wxPayCode.matches(regex);
- if(!flag){
- throw new FebsException("请打开微信付款码!");
- }
MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(orderId);
if(OrderStatusEnum.FINISH.getValue() == (mallOrderInfo.getStatus())){
throw new FebsException("已支付");
}
+ BigDecimal amount = mallOrderInfo.getAmount();
+ BigDecimal carriage = mallOrderInfo.getCarriage();
+ //减少用户积分和余额
+ if(ObjectUtil.isNotEmpty(mallOrderInfo.getMemberId())){
+ BigDecimal avaAmount = carriage;//剩余需要折扣的金额
+ if(avaAmount.compareTo(BigDecimal.ZERO) > 0){
+ MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(mallOrderInfo.getMemberId());
+ BigDecimal score = mallMemberWallet.getScore();
+ BigDecimal balance = mallMemberWallet.getBalance();
+ BigDecimal memberAmount = score.add(balance);
+ if(avaAmount.compareTo(memberAmount) >= 0){
+ //清零用户的积分和余额
+ mallMemberWallet.setBalance(BigDecimal.ZERO);
+ mallMemberWallet.setScore(BigDecimal.ZERO);
+ mallMemberWalletMapper.updateBalanceScoreWithId(mallMemberWallet);
+ }else{
+ /**
+ * 先扣积分,再扣余额
+ */
+ if(avaAmount.compareTo(score) >= 0){
+ mallMemberWallet.setScore(BigDecimal.ZERO);
+ avaAmount = avaAmount.subtract(score);
+ }else{
+ mallMemberWallet.setScore(score.subtract(avaAmount));
+ avaAmount = BigDecimal.ZERO;
+ }
+ //积分不够
+ if(avaAmount.compareTo(BigDecimal.ZERO) > 0){
+ mallMemberWallet.setBalance(balance.subtract(avaAmount));
+ }else{
+ mallMemberWallet.setBalance(balance);
+ }
+ mallMemberWalletMapper.updateBalanceScoreWithId(mallMemberWallet);
+ }
+ }
+ }
+ String wxPayCode = wxCodePayDto.getWxPayCode();
mallOrderInfo.setTakeCode(wxPayCode);
List<ApiGetOrderOrderItemVo> appOrderItemByOrderId = mallOrderItemMapper.getAppOrderItemByOrderId(orderId);
if(CollUtil.isEmpty(appOrderItemByOrderId)){
@@ -358,46 +387,18 @@
}else{
mallOrderInfo.setName(appOrderItemByOrderId.get(0).getGoodsName());
}
-// mallOrderInfo.setPayResult(2);
mallOrderInfoMapper.updateById(mallOrderInfo);
- //减少用户积分和余额
- if(ObjectUtil.isNotEmpty(mallOrderInfo.getMemberId())){
- MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(mallOrderInfo.getMemberId());
- BigDecimal totalCarriage = mallOrderInfo.getCarriage();
- BigDecimal score = mallMemberWallet.getScore();
- BigDecimal balance = mallMemberWallet.getBalance();
- BigDecimal memberAmount = score.add(balance);
- BigDecimal avaAmount = totalCarriage;//剩余需要折扣的金额
- if(avaAmount.compareTo(memberAmount) >= 0){
- //清零用户的积分和余额
- mallMemberWallet.setBalance(BigDecimal.ZERO);
- mallMemberWallet.setScore(BigDecimal.ZERO);
- mallMemberWalletMapper.updateBalanceScoreWithId(mallMemberWallet);
- }else{
- /**
- * 先扣积分,再扣余额
- */
- if(avaAmount.compareTo(score) >= 0){
- mallMemberWallet.setScore(BigDecimal.ZERO);
- avaAmount = avaAmount.subtract(score);
- }else{
- mallMemberWallet.setScore(score.subtract(avaAmount));
- avaAmount = BigDecimal.ZERO;
- }
- //积分不够
- if(avaAmount.compareTo(BigDecimal.ZERO) > 0){
- mallMemberWallet.setBalance(balance.subtract(avaAmount));
- }else{
- mallMemberWallet.setBalance(balance);
- }
- mallMemberWalletMapper.updateBalanceScoreWithId(mallMemberWallet);
- }
- }
// 发起付款码支付请求
- BigDecimal amount = mallOrderInfo.getAmount();
- BigDecimal carriage = mallOrderInfo.getCarriage();
String payResult = "支付成功";
if(amount.subtract(carriage).compareTo(BigDecimal.ZERO) > 0){
+ /**
+ * auth_code 扫码支付付款码 微信付款码规则:18位纯数字,前缀以10、11、12、13、14、15开头
+ */
+ String regex = "^(10|11|12|13|14|15)\\d{16}$";
+ boolean flag = wxPayCode.matches(regex);
+ if(!flag){
+ throw new FebsException("请打开微信付款码!");
+ }
payResult = xcxCodePayService.pay(mallOrderInfo);
}
return new FebsResponse().success().message(payResult);
--
Gitblit v1.9.1