diff --git a/src/main/java/com/peanut/modules/common/service/impl/BuyOrderServiceImpl.java b/src/main/java/com/peanut/modules/common/service/impl/BuyOrderServiceImpl.java index 34a2247d..70a7a64b 100644 --- a/src/main/java/com/peanut/modules/common/service/impl/BuyOrderServiceImpl.java +++ b/src/main/java/com/peanut/modules/common/service/impl/BuyOrderServiceImpl.java @@ -141,7 +141,12 @@ public class BuyOrderServiceImpl extends ServiceImpl impl if (buyOrder!=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){ buyOrder.setVipBuyConfigEntity(vipBuyConfigDao.selectById(buyOrder.getVipBuyConfigId())); diff --git a/src/main/java/com/peanut/modules/pay/IOSPay/controller/AppController.java b/src/main/java/com/peanut/modules/pay/IOSPay/controller/AppController.java index ecf9a5b1..823805b7 100644 --- a/src/main/java/com/peanut/modules/pay/IOSPay/controller/AppController.java +++ b/src/main/java/com/peanut/modules/pay/IOSPay/controller/AppController.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.peanut.common.utils.*; import com.peanut.modules.book.service.*; 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.constant.VerifyReceiptConstant; 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.context.annotation.Configuration; import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; @@ -43,6 +45,8 @@ public class AppController { @Autowired private TransactionDetailsService transactionDetailsService; @Autowired + private JfTransactionDetailsService jfTransactionDetailsService; + @Autowired private PayPaymentOrderService payPaymentOrderService; @Autowired private BuyOrderService buyOrderService; @@ -132,6 +136,18 @@ public class AppController { // 插入花生币 变动记录 BookBuyConfigEntity bookBuyConfigEntity = this.bookBuyConfigService.getById(Integer.valueOf(body)); 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(); userService.rechargeHSPoint(userEntity, realMoney.intValue()); //插入虚拟币消费记录 @@ -151,6 +167,7 @@ public class AppController { } return Result.nook(500,"订单加载失败"); } finally { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); lock.unlock(); } } diff --git a/src/main/java/com/peanut/modules/pay/alipay/service/impl/AliPayServiceImpl.java b/src/main/java/com/peanut/modules/pay/alipay/service/impl/AliPayServiceImpl.java index d051d248..fdf241bf 100644 --- a/src/main/java/com/peanut/modules/pay/alipay/service/impl/AliPayServiceImpl.java +++ b/src/main/java/com/peanut/modules/pay/alipay/service/impl/AliPayServiceImpl.java @@ -218,6 +218,11 @@ public class AliPayServiceImpl implements AliPayService { // 插入花生币 变动记录 BookBuyConfigEntity bookBuyConfigEntity = bookBuyConfigService.getById(Integer.valueOf(body)); 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) { userEntity.setJf(userEntity.getJf().add(bookBuyConfigEntity.getGivejf())); diff --git a/src/main/java/com/peanut/modules/pay/weChatPay/service/impl/WxpayServiceImpl.java b/src/main/java/com/peanut/modules/pay/weChatPay/service/impl/WxpayServiceImpl.java index 0f9ef98b..2ee43e68 100644 --- a/src/main/java/com/peanut/modules/pay/weChatPay/service/impl/WxpayServiceImpl.java +++ b/src/main/java/com/peanut/modules/pay/weChatPay/service/impl/WxpayServiceImpl.java @@ -295,9 +295,14 @@ public class WxpayServiceImpl extends ServiceImpl().eq("order_sn", order.getOrderSn())); - Integer buyorder = buy_order_id.getBuyOrderId(); + PayWechatOrderEntity payWechatOrder = payWechatOrderService.getBaseMapper().selectOne(new QueryWrapper().eq("order_sn", order.getOrderSn())); + Integer buyorder = payWechatOrder.getBuyOrderId(); 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()); //充值送积分 if (bookBuyConfigEntity != null && bookBuyConfigEntity.getGivejf().compareTo(BigDecimal.ZERO)>0) { @@ -315,9 +320,9 @@ public class WxpayServiceImpl extends ServiceImpl