回调中添加自定义充值判断

This commit is contained in:
wuchunlei
2025-06-11 18:08:57 +08:00
parent 28544b80fb
commit ab76486efd
4 changed files with 37 additions and 5 deletions

View File

@@ -141,7 +141,12 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrder> impl
if (buyOrder!=null){ if (buyOrder!=null){
//组装充值配置详情 //组装充值配置详情
if (buyOrder.getProductId()!=null){ if (buyOrder.getProductId()!=null){
buyOrder.setBookBuyConfigEntity(bookBuyConfigDao.selectById(buyOrder.getProductId())); BookBuyConfigEntity bookBuyConfigEntity = bookBuyConfigDao.selectById(buyOrder.getProductId());
if ("0".equals(buyOrder.getProductId())){
bookBuyConfigEntity.setRealMoney(buyOrder.getRealMoney());
bookBuyConfigEntity.setMoney(buyOrder.getRealMoney());
}
buyOrder.setBookBuyConfigEntity(bookBuyConfigEntity);
} }
if (buyOrder.getVipBuyConfigId()!=null&&buyOrder.getAiBuyConfigId()!=0){ if (buyOrder.getVipBuyConfigId()!=null&&buyOrder.getAiBuyConfigId()!=0){
buyOrder.setVipBuyConfigEntity(vipBuyConfigDao.selectById(buyOrder.getVipBuyConfigId())); buyOrder.setVipBuyConfigEntity(vipBuyConfigDao.selectById(buyOrder.getVipBuyConfigId()));

View File

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.peanut.common.utils.*; import com.peanut.common.utils.*;
import com.peanut.modules.book.service.*; import com.peanut.modules.book.service.*;
import com.peanut.modules.common.entity.*; import com.peanut.modules.common.entity.*;
import com.peanut.modules.common.service.JfTransactionDetailsService;
import com.peanut.modules.pay.IOSPay.Result; import com.peanut.modules.pay.IOSPay.Result;
import com.peanut.modules.pay.IOSPay.constant.VerifyReceiptConstant; import com.peanut.modules.pay.IOSPay.constant.VerifyReceiptConstant;
import com.peanut.modules.pay.IOSPay.model.dto.IapRequestDTO; import com.peanut.modules.pay.IOSPay.model.dto.IapRequestDTO;
@@ -19,6 +20,7 @@ import lombok.experimental.FieldDefaults;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal; import java.math.BigDecimal;
@@ -43,6 +45,8 @@ public class AppController {
@Autowired @Autowired
private TransactionDetailsService transactionDetailsService; private TransactionDetailsService transactionDetailsService;
@Autowired @Autowired
private JfTransactionDetailsService jfTransactionDetailsService;
@Autowired
private PayPaymentOrderService payPaymentOrderService; private PayPaymentOrderService payPaymentOrderService;
@Autowired @Autowired
private BuyOrderService buyOrderService; private BuyOrderService buyOrderService;
@@ -132,6 +136,18 @@ public class AppController {
// 插入花生币 变动记录 // 插入花生币 变动记录
BookBuyConfigEntity bookBuyConfigEntity = this.bookBuyConfigService.getById(Integer.valueOf(body)); BookBuyConfigEntity bookBuyConfigEntity = this.bookBuyConfigService.getById(Integer.valueOf(body));
MyUserEntity userEntity = userService.getById(Integer.valueOf(customerid)); MyUserEntity userEntity = userService.getById(Integer.valueOf(customerid));
if (bookBuyConfigEntity != null && bookBuyConfigEntity.getGivejf().compareTo(BigDecimal.ZERO)>0) {
userEntity.setJf(userEntity.getJf().add(bookBuyConfigEntity.getGivejf()));
userService.updateById(userEntity);
JfTransactionDetails jfTransactionDetails = new JfTransactionDetails();
jfTransactionDetails.setUserId(userEntity.getId());
jfTransactionDetails.setChangeAmount(bookBuyConfigEntity.getGivejf());
jfTransactionDetails.setActType(0);
jfTransactionDetails.setUserBalance(userEntity.getJf());
jfTransactionDetails.setRelationId(order2.getOrderId());
jfTransactionDetails.setRemark("充币送积分:"+bookBuyConfigEntity.getDescription()+",订单号:"+order2.getOrderSn());
jfTransactionDetailsService.save(jfTransactionDetails);
}
BigDecimal realMoney = bookBuyConfigEntity.getMoney(); BigDecimal realMoney = bookBuyConfigEntity.getMoney();
userService.rechargeHSPoint(userEntity, realMoney.intValue()); userService.rechargeHSPoint(userEntity, realMoney.intValue());
//插入虚拟币消费记录 //插入虚拟币消费记录
@@ -151,6 +167,7 @@ public class AppController {
} }
return Result.nook(500,"订单加载失败"); return Result.nook(500,"订单加载失败");
} finally { } finally {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
lock.unlock(); lock.unlock();
} }
} }

View File

@@ -218,6 +218,11 @@ public class AliPayServiceImpl implements AliPayService {
// 插入花生币 变动记录 // 插入花生币 变动记录
BookBuyConfigEntity bookBuyConfigEntity = bookBuyConfigService.getById(Integer.valueOf(body)); BookBuyConfigEntity bookBuyConfigEntity = bookBuyConfigService.getById(Integer.valueOf(body));
MyUserEntity userEntity = userService.getById(order.getUserId()); MyUserEntity userEntity = userService.getById(order.getUserId());
if (Integer.valueOf(body)==0){//自定义充值
bookBuyConfigEntity.setRealMoney(order.getRealMoney());
bookBuyConfigEntity.setMoney(order.getRealMoney());
bookBuyConfigEntity.setQudao("Android");
}
//充值送积分 //充值送积分
if (bookBuyConfigEntity != null && bookBuyConfigEntity.getGivejf().compareTo(BigDecimal.ZERO)>0) { if (bookBuyConfigEntity != null && bookBuyConfigEntity.getGivejf().compareTo(BigDecimal.ZERO)>0) {
userEntity.setJf(userEntity.getJf().add(bookBuyConfigEntity.getGivejf())); userEntity.setJf(userEntity.getJf().add(bookBuyConfigEntity.getGivejf()));

View File

@@ -295,9 +295,14 @@ public class WxpayServiceImpl extends ServiceImpl<PayWechatOrderDao, PayWechatOr
buyOrderService.updateOrderStatus(order.getUserId(), order.getOrderSn(), ActString); buyOrderService.updateOrderStatus(order.getUserId(), order.getOrderSn(), ActString);
} }
if ("point".equals(order.getOrderType())) { if ("point".equals(order.getOrderType())) {
PayWechatOrderEntity buy_order_id = payWechatOrderService.getBaseMapper().selectOne(new QueryWrapper<PayWechatOrderEntity>().eq("order_sn", order.getOrderSn())); PayWechatOrderEntity payWechatOrder = payWechatOrderService.getBaseMapper().selectOne(new QueryWrapper<PayWechatOrderEntity>().eq("order_sn", order.getOrderSn()));
Integer buyorder = buy_order_id.getBuyOrderId(); Integer buyorder = payWechatOrder.getBuyOrderId();
BookBuyConfigEntity bookBuyConfigEntity = bookBuyConfigService.getById(buyorder); BookBuyConfigEntity bookBuyConfigEntity = bookBuyConfigService.getById(buyorder);
if (buyorder==0){//自定义充值
bookBuyConfigEntity.setRealMoney(payWechatOrder.getTotalAmount());
bookBuyConfigEntity.setMoney(payWechatOrder.getTotalAmount());
bookBuyConfigEntity.setQudao("Android");
}
MyUserEntity userEntity = userService.getById(order.getUserId()); MyUserEntity userEntity = userService.getById(order.getUserId());
//充值送积分 //充值送积分
if (bookBuyConfigEntity != null && bookBuyConfigEntity.getGivejf().compareTo(BigDecimal.ZERO)>0) { if (bookBuyConfigEntity != null && bookBuyConfigEntity.getGivejf().compareTo(BigDecimal.ZERO)>0) {
@@ -315,9 +320,9 @@ public class WxpayServiceImpl extends ServiceImpl<PayWechatOrderDao, PayWechatOr
BigDecimal realMoney = bookBuyConfigEntity.getRealMoney(); BigDecimal realMoney = bookBuyConfigEntity.getRealMoney();
userService.rechargeHSPoint(userEntity, realMoney.intValue()); userService.rechargeHSPoint(userEntity, realMoney.intValue());
//插入虚拟币消费记录 //插入虚拟币消费记录
transactionDetailsService.rechargeRecord(userEntity,realMoney.toString(),buy_order_id.getId().intValue(),"微信",order.getOrderSn()); transactionDetailsService.rechargeRecord(userEntity,realMoney.toString(),payWechatOrder.getId().intValue(),"微信",order.getOrderSn());
//插入花生币充值记录 //插入花生币充值记录
payPaymentOrderService.insertDetail(userEntity,bookBuyConfigEntity,buy_order_id.getId().toString()); payPaymentOrderService.insertDetail(userEntity,bookBuyConfigEntity,payWechatOrder.getId().toString());
buyOrderService.updateOrderStatus(order.getUserId(), order.getOrderSn(), "2"); buyOrderService.updateOrderStatus(order.getUserId(), order.getOrderSn(), "2");
} }
} }