diff --git a/src/main/java/com/peanut/modules/book/service/MyUserService.java b/src/main/java/com/peanut/modules/book/service/MyUserService.java index 4f051ff8..a2b80d05 100644 --- a/src/main/java/com/peanut/modules/book/service/MyUserService.java +++ b/src/main/java/com/peanut/modules/book/service/MyUserService.java @@ -36,7 +36,7 @@ public interface MyUserService extends IService { //会员开通 电话 开通 期限 boolean openMember(Integer customerId,Integer openMonth); //充值花生币 - boolean rechargeHSPoint(Integer customerId,Integer HSPoint); + boolean rechargeHSPoint(MyUserEntity userEntity,Integer HSPoint); //电子书购买 String buyEbook(String userId, String bookId,String couponId); diff --git a/src/main/java/com/peanut/modules/book/service/PayPaymentOrderService.java b/src/main/java/com/peanut/modules/book/service/PayPaymentOrderService.java index 4120697a..8c07de86 100644 --- a/src/main/java/com/peanut/modules/book/service/PayPaymentOrderService.java +++ b/src/main/java/com/peanut/modules/book/service/PayPaymentOrderService.java @@ -2,6 +2,8 @@ package com.peanut.modules.book.service; import com.baomidou.mybatisplus.extension.service.IService; import com.peanut.common.utils.PageUtils; +import com.peanut.modules.common.entity.BookBuyConfigEntity; +import com.peanut.modules.common.entity.MyUserEntity; import com.peanut.modules.common.entity.PayPaymentOrderEntity; import java.util.Map; @@ -16,5 +18,7 @@ import java.util.Map; public interface PayPaymentOrderService extends IService { PageUtils queryPage(Map params); + + void insertDetail(MyUserEntity user, BookBuyConfigEntity bookBuyConfigEntity, int payXxxOrderId); } diff --git a/src/main/java/com/peanut/modules/book/service/TransactionDetailsService.java b/src/main/java/com/peanut/modules/book/service/TransactionDetailsService.java index b210ec60..dffa638c 100644 --- a/src/main/java/com/peanut/modules/book/service/TransactionDetailsService.java +++ b/src/main/java/com/peanut/modules/book/service/TransactionDetailsService.java @@ -25,5 +25,8 @@ public interface TransactionDetailsService extends IService impl } @Override - public boolean rechargeHSPoint(Integer customerId,Integer HSPoint) { - MyUserEntity user = this.getById(customerId); + public boolean rechargeHSPoint(MyUserEntity user,Integer HSPoint) { if (user == null) { return false; } diff --git a/src/main/java/com/peanut/modules/book/service/impl/PayPaymentOrderServiceImpl.java b/src/main/java/com/peanut/modules/book/service/impl/PayPaymentOrderServiceImpl.java index 3ddb890e..9957fc7d 100644 --- a/src/main/java/com/peanut/modules/book/service/impl/PayPaymentOrderServiceImpl.java +++ b/src/main/java/com/peanut/modules/book/service/impl/PayPaymentOrderServiceImpl.java @@ -1,8 +1,13 @@ package com.peanut.modules.book.service.impl; import com.peanut.common.utils.ExcludeEmptyQueryWrapper; +import com.peanut.modules.common.entity.BookBuyConfigEntity; +import com.peanut.modules.common.entity.MyUserEntity; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.Date; import java.util.Map; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -31,4 +36,19 @@ public class PayPaymentOrderServiceImpl extends ServiceImpl params){ @@ -69,6 +76,7 @@ public class PaypalController { } @RequestMapping("/capture") + @Transactional public R capture(@RequestBody Map params) throws Exception{ JSONObject res = paypalConfig.capture(params.get("paypalId").toString()); if (res.containsKey("status")&&"COMPLETED".equals(res.get("status").toString())){ @@ -80,11 +88,25 @@ public class PaypalController { JSONArray captures = JSONArray.parseArray(payments.get("captures").toString()); JSONObject capture = (JSONObject)captures.get(0); if ("COMPLETED".equals(capture.get("status").toString())){ + //更新PayPal订单 payPaypalOrder.setCaptureId(capture.get("id").toString()); payPaypalOrder.setCaptureTime(new Date()); payPaypalOrderService.updateById(payPaypalOrder); BuyOrder buyOrder = buyOrderService.getById(payPaypalOrder.getOrderId()); - userEbookBuyService.addBookForUser(buyOrder.getUserId(),Arrays.asList(buyOrder.getAbroadBookId())); + if ("abroadBook".equals(buyOrder.getOrderType())){ + userEbookBuyService.addBookForUser(buyOrder.getUserId(),Arrays.asList(buyOrder.getAbroadBookId())); + } + if ("point".equals(buyOrder.getOrderType())){ + BookBuyConfigEntity bookBuyConfigEntity = bookBuyConfigService.getById(buyOrder.getProductId()); + MyUserEntity userEntity = userService.getById(buyOrder.getUserId()); + String realMoney = bookBuyConfigEntity.getRealMoney(); + //更新账户余额 + userService.rechargeHSPoint(userEntity,Integer.valueOf(realMoney)); + //插入虚拟币消费记录 + transactionDetailsService.rechargeRecord(userEntity,realMoney,payPaypalOrder.getId(),"PayPal",buyOrder.getOrderSn()); + //插入花生币充值记录 + payPaymentOrderService.insertDetail(userEntity,bookBuyConfigEntity,payPaypalOrder.getId()); + } return R.ok(); } } 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 5ccba614..72560704 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 @@ -282,9 +282,9 @@ public class WxpayServiceImpl extends ServiceImpl().eq("order_sn", order.getOrderSn())); Integer buyorder = buy_order_id.getBuyOrderId(); BookBuyConfigEntity bookBuyConfigEntity = bookBuyConfigService.getById(buyorder); + MyUserEntity userEntity = userService.getById(order.getUserId()); //充值送积分 if (bookBuyConfigEntity != null && !"0".equals(bookBuyConfigEntity.getGivejf())) { - MyUserEntity userEntity = userService.getById(order.getUserId()); userEntity.setJf(userEntity.getJf().add(new BigDecimal(bookBuyConfigEntity.getGivejf()))); userService.updateById(userEntity); JfTransactionDetails jfTransactionDetails = new JfTransactionDetails(); @@ -297,33 +297,11 @@ public class WxpayServiceImpl extends ServiceImpl