diff --git a/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java b/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java index 62f00575..6b955893 100644 --- a/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java +++ b/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java @@ -17,6 +17,7 @@ import com.peanut.modules.book.vo.request.ProductRequestVo; import com.peanut.modules.book.vo.request.ProductTransportVo; import com.peanut.modules.book.vo.response.BuyOrderResponseVo; import com.peanut.modules.book.vo.response.OrderAddressResponseVo; +import com.peanut.modules.common.dao.JfTransactionDetailsDao; import com.peanut.modules.common.dao.UserCourseBuyDao; import com.peanut.modules.common.entity.*; import com.peanut.modules.pay.weChatPay.dto.WechatPaymentInfo; @@ -90,6 +91,8 @@ public class BuyOrderController { private CountyService countyService; @Autowired private UserCourseBuyDao userCourseBuyDao; + @Autowired + private JfTransactionDetailsDao jfTransactionDetailsDao; @RequestMapping(value = "/decomposeShipment", method = RequestMethod.POST) public R decomposeShipment(@RequestBody BuyOrderListRequestVo requestVo) { @@ -895,6 +898,14 @@ public class BuyOrderController { } private void recordJfTransaction(BuyOrder buyOrder, MyUserEntity user, BigDecimal jf){ + JfTransactionDetails jfTransactionDetails = new JfTransactionDetails(); + jfTransactionDetails.setUserId(user.getId()); + jfTransactionDetails.setChangeAmount(jf); + jfTransactionDetails.setActType(0); + jfTransactionDetails.setUserBalance(user.getJf()); + jfTransactionDetails.setRelationId(buyOrder.getOrderId()); + jfTransactionDetails.setRemark("消费积分抵扣:"+jf.toString()+",订单号:"+buyOrder.getOrderSn()); + jfTransactionDetailsDao.insert(jfTransactionDetails); } /** diff --git a/src/main/java/com/peanut/modules/common/entity/JfTransactionDetails.java b/src/main/java/com/peanut/modules/common/entity/JfTransactionDetails.java index 2c70b820..d06c1469 100644 --- a/src/main/java/com/peanut/modules/common/entity/JfTransactionDetails.java +++ b/src/main/java/com/peanut/modules/common/entity/JfTransactionDetails.java @@ -21,7 +21,7 @@ public class JfTransactionDetails implements Serializable { /** * 0增加1减少 */ - private String actType; + private Integer actType; /** * 变动金额 */ 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 7abe5ae1..11137a0a 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 @@ -9,10 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.peanut.common.utils.CopyUtils; import com.peanut.common.utils.OrderUtils; -import com.peanut.modules.common.dao.BuyOrderProductDao; -import com.peanut.modules.common.dao.ShopProductBookDao; -import com.peanut.modules.common.dao.UserCourseBuyDao; -import com.peanut.modules.common.dao.UserEbookBuyDao; +import com.peanut.modules.common.dao.*; import com.peanut.modules.book.service.*; import com.peanut.modules.common.entity.*; import com.peanut.modules.pay.alipay.config.AliPayConfig; @@ -62,6 +59,8 @@ public class AliPayServiceImpl implements AliPayService { private PayRefundOrderService refundOrderService; @Autowired private UserCourseBuyDao userCourseBuyDao; + @Autowired + private JfTransactionDetailsDao jfTransactionDetailsDao; @Override public String pay(AlipayDTO payDto) { @@ -201,6 +200,11 @@ public class AliPayServiceImpl implements AliPayService { String ActString = buyOrderService.checkWlOrder(orderEntity.getOrderSn())?"0":"2"; buyOrderService.updateOrderStatus(Integer.valueOf(customerid),oldPayZfbOrderEntity.getRelevanceoid(),ActString); + //处理抵扣积分 + if(orderEntity.getJfDeduction().compareTo(BigDecimal.ZERO)>0){ + userCoinJf(orderEntity); + } + /* 记录用户购买的书籍 */ // 查询订单的所有 book_id List orderBookIdList = shopProductBookDao.getOrderBookId(orderEntity.getOrderSn()); @@ -337,6 +341,20 @@ public class AliPayServiceImpl implements AliPayService { return resJson; } + private void userCoinJf(BuyOrder order){ + MyUserEntity userEntity = userService.getById(order.getUserId()); + userEntity.setJf(userEntity.getJf().subtract(order.getJfDeduction())); + userService.updateById(userEntity); + JfTransactionDetails jfTransactionDetails = new JfTransactionDetails(); + jfTransactionDetails.setUserId(userEntity.getId()); + jfTransactionDetails.setChangeAmount(order.getJfDeduction()); + jfTransactionDetails.setActType(0); + jfTransactionDetails.setUserBalance(userEntity.getJf()); + jfTransactionDetails.setRelationId(order.getOrderId()); + jfTransactionDetails.setRemark("消费积分抵扣:"+order.getJfDeduction().toString()+",订单号:"+order.getOrderSn()); + jfTransactionDetailsDao.insert(jfTransactionDetails); + } + //TODO 更新订单状态 //TODO 更新用户优惠券状态 //TODO 推送一路健康优惠券 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 bdd4a935..83094e44 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 @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.peanut.modules.common.dao.BuyOrderProductDao; +import com.peanut.modules.common.dao.JfTransactionDetailsDao; import com.peanut.modules.common.dao.PayWechatOrderDao; import com.peanut.modules.book.service.*; import com.peanut.modules.common.dao.UserCourseBuyDao; @@ -69,6 +70,8 @@ public class WxpayServiceImpl extends ServiceImpl0){ + userCoinJf(orderEntity); + } + + //开通book,start // 查询订单的所有 book_id List orderBookIdList = shopProductBookService.getOrderBookId(order.getOrderSn()); @@ -288,6 +297,20 @@ public class WxpayServiceImpl extends ServiceImpl