From 353cf91d3679e68d9b8c07652e4f7791d606dbd4 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期五, 15 十一月 2024 15:14:39 +0800 Subject: [PATCH] 代码提交 --- xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/service/impl/OrderServiceImpl.java | 116 ++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 81 insertions(+), 35 deletions(-) diff --git a/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/service/impl/OrderServiceImpl.java b/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/service/impl/OrderServiceImpl.java index 8eb0d71..b52f0b0 100644 --- a/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/service/impl/OrderServiceImpl.java +++ b/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/service/impl/OrderServiceImpl.java @@ -76,7 +76,7 @@ */ @Override @Transactional(rollbackFor = Exception.class) - public ClientPlaceOrderVO placeOrder(Long targetId, Integer orderFrom, Long receiverId, + public ClientPlaceOrderVO placeOrder(Long targetId, Integer orderFrom, Long receiverId, Long orderId, Integer balanceFlag, Integer payType,BigDecimal amount,Integer vipType) throws Exception { // 获取当前登录用户id LoginUser loginUser = tokenService.getLoginUser(); @@ -100,28 +100,47 @@ String wxOpenId = appUser.getWxOpenId(); // 创建订单 String orderNo = OrderUtil.getOrderNoForPrefix("MX"); - order.setOrderFrom(orderFrom); - order.setBizOrderNo(orderNo); - order.setBusinessId(meditation.getId()); - order.setAppUserId(userId); + if (orderId==null){ + order.setPayType(payType); + order.setOrderFrom(orderFrom); + order.setBizOrderNo(orderNo); + order.setBusinessId(meditation.getId()); + order.setAppUserId(userId); + order.setRealPayAmount(meditation.getGeneralPrice()); + order.setPayType(payType); + order.setBuyContent("购买疗愈【"+meditationTitle+"】"); + order.setTotalAmount(meditation.getGeneralPrice()); + order.setGiveUserId(receiverId); + this.save(order); + }else{ + order = this.getById(orderId); + order.setBuyContent("购买疗愈【"+meditationTitle+"】"); + } - order.setTotalAmount(meditation.getGeneralPrice()); - this.save(order); - Long orderId = order.getId(); + Long orderId9 = order.getId(); clientPlaceOrderVO.setOrderNo(orderNo); - clientPlaceOrderVO.setId(orderId); + clientPlaceOrderVO.setId(orderId9); // 如果冥想音频价格设定为单独收费,且需要使用余额抵扣 if (balanceFlag.equals(1) && meditation.getChargeType().equals(ChargeTypeEnum.SEPARATE_CHARGE.getCode())) { BigDecimal needPayAmount = handleBalancePayment(appUser, meditation.getGeneralPrice(), - orderId); + orderId9); if (needPayAmount.compareTo(BigDecimal.ZERO) <= 0) { clientPlaceOrderVO.setZeroFlag(DisabledEnum.YES.getCode()); // 抵扣后金额为0 为余额支付 order.setPayType(4); order.setRealPayAmount(meditation.getGeneralPrice()); + order.setBuyContent("购买疗愈【"+meditationTitle+"】"); this.updateById(order); return clientPlaceOrderVO; + }else{ + // 余额抵扣不完 + OrderPaymentRecord one = orderPaymentRecordService.lambdaQuery().eq(OrderPaymentRecord::getPaymentType, 4) + .eq(OrderPaymentRecord::getOrderId, orderId9).one(); + if (one!=null){ + one.setPayAmount(meditation.getGeneralPrice().subtract(needPayAmount)); + orderPaymentRecordService.updateById(one); + } } if (payType==1){ // 微信+余额 @@ -130,14 +149,15 @@ // 支付宝+余额 order.setPayType(6); } + order.setBuyContent("购买疗愈【"+meditationTitle+"】"); this.updateById(order); // 创建支付订单 createPayment(payType, orderNo, needPayAmount, meditationTitle, detailDescription, - wxOpenId, orderId, clientPlaceOrderVO); + wxOpenId, orderId9, clientPlaceOrderVO); } else { // 创建支付订单 createPayment(payType, orderNo, meditation.getGeneralPrice(), meditationTitle, - detailDescription, wxOpenId, orderId, clientPlaceOrderVO); + detailDescription, wxOpenId, orderId9, clientPlaceOrderVO); } } else if (orderFrom == 2){ @@ -149,29 +169,47 @@ // 创建订单 String orderNo = OrderUtil.getOrderNoForPrefix("KC"); - order.setOrderFrom(orderFrom); - order.setBizOrderNo(orderNo); - order.setGiveUserId(receiverId); - order.setBusinessId(course.getId()); - order.setAppUserId(userId); - order.setTotalAmount(course.getGeneralPrice()); - this.save(order); - Long orderId = order.getId(); + if (orderId==null){ + order.setOrderFrom(orderFrom); + order.setBizOrderNo(orderNo); + order.setGiveUserId(receiverId); + order.setBusinessId(course.getId()); + order.setAppUserId(userId); + order.setBuyContent("购买课程【"+courseTitle+"】"); + order.setRealPayAmount(course.getGeneralPrice()); + order.setTotalAmount(course.getGeneralPrice()); + this.save(order); + }else{ + order = this.getById(orderId); + order.setBuyContent("购买课程【"+courseTitle+"】"); + + } + Long orderId8 = order.getId(); clientPlaceOrderVO.setOrderNo(orderNo); - clientPlaceOrderVO.setId(orderId); + clientPlaceOrderVO.setId(orderId8); if (balanceFlag.equals(1) && course.getChargeType() .equals(ChargeTypeEnum.SEPARATE_CHARGE.getCode())) { BigDecimal needPayAmount = handleBalancePayment(appUser, course.getGeneralPrice(), - orderId); + orderId8); if (needPayAmount.compareTo(BigDecimal.ZERO) <= 0) { clientPlaceOrderVO.setZeroFlag(DisabledEnum.YES.getCode()); // 抵扣后金额为0 为余额支付 order.setPayType(4); order.setRealPayAmount(course.getGeneralPrice()); + order.setBuyContent("购买课程【"+courseTitle+"】"); + this.updateById(order); return clientPlaceOrderVO; + }else{ + // 余额抵扣不完 + OrderPaymentRecord one = orderPaymentRecordService.lambdaQuery().eq(OrderPaymentRecord::getPaymentType, 4) + .eq(OrderPaymentRecord::getOrderId, orderId8).one(); + if (one!=null){ + one.setPayAmount(course.getGeneralPrice().subtract(needPayAmount)); + orderPaymentRecordService.updateById(one); + } } if (payType==1){ // 微信+余额 @@ -180,13 +218,16 @@ // 支付宝+余额 order.setPayType(6); } + order.setBuyContent("购买课程【"+courseTitle+"】"); + + this.updateById(order); // 创建支付订单 createPayment(payType, orderNo, needPayAmount, courseTitle, description, - wxOpenId, orderId, clientPlaceOrderVO); + wxOpenId, orderId8, clientPlaceOrderVO); } else { // 创建支付订单 createPayment(payType, orderNo, course.getGeneralPrice(), courseTitle, - description, wxOpenId, orderId, clientPlaceOrderVO); + description, wxOpenId, orderId8, clientPlaceOrderVO); } } else if (orderFrom == 3){ @@ -213,12 +254,12 @@ } order.setBuyContent(vipType1); this.save(order); - Long orderId = order.getId(); + Long orderId7 = order.getId(); clientPlaceOrderVO.setOrderNo(orderNo); - clientPlaceOrderVO.setId(orderId); + clientPlaceOrderVO.setId(orderId7); // 创建支付订单 createPayment(payType, orderNo, amount, "购买会员", - vipType1, wxOpenId, orderId, clientPlaceOrderVO); + vipType1, wxOpenId, orderId7, clientPlaceOrderVO); }else { // 充值 @@ -233,12 +274,12 @@ order.setPayType(payType); order.setBuyContent("充值"); this.save(order); - Long orderId = order.getId(); + Long orderId6 = order.getId(); clientPlaceOrderVO.setOrderNo(orderNo); - clientPlaceOrderVO.setId(orderId); + clientPlaceOrderVO.setId(orderId6); // 创建支付订单 createPayment(payType, orderNo, amount, "充值余额", - "充值余额", wxOpenId, orderId, clientPlaceOrderVO); + "充值余额", wxOpenId, orderId6, clientPlaceOrderVO); } return clientPlaceOrderVO; } @@ -281,9 +322,7 @@ * @return AppUser */ private AppUser getAppUserById(Long userId) { - return remoteAppUserService.getUserByCondition( - AppUserDTO.builder().id(userId).build(), - SecurityConstants.INNER).getData(); + return remoteAppUserService.getAppUserById(userId+"").getData(); } /** @@ -308,7 +347,9 @@ // 调用第三方支付获取支付信息 JSONObject payInfo = JuHeFuUtil.createPayment1(orderNo, payType, needPayAmount.toString(), goodsTitle, goodsDesc, - IpUtils.getIpAddr(), wxOpenId, "https://v7ro848ar5jx.ngrok.xiaomiqiu123.top/order/client/order/order/base/callback"); + IpUtils.getIpAddr(), wxOpenId, + // "https://v7ro848ar5jx.ngrok.xiaomiqiu123.top/order/client/order/order/base/callback") + "https://xq.xqzhihui.com/api/order/client/order/order/base/callback"); // 第三方支付记录 OrderPaymentRecord paymentRecord = new OrderPaymentRecord(); paymentRecord.setOrderId(orderId); @@ -330,7 +371,9 @@ // 调用第三方支付获取支付信息 JSONObject payInfo = JuHeFuUtil.createPayment(orderNo, payType, needPayAmount.toString(), goodsTitle, goodsDesc, - IpUtils.getIpAddr(), wxOpenId, "https://v7ro848ar5jx.ngrok.xiaomiqiu123.top/order/client/order/order/base/callback"); + IpUtils.getIpAddr(), wxOpenId, + // "https://v7ro848ar5jx.ngrok.xiaomiqiu123.top/order/client/order/order/base/callback") + "https://xq.xqzhihui.com/api/order/client/order/order/base/callback"); // 第三方支付记录 OrderPaymentRecord paymentRecord = new OrderPaymentRecord(); paymentRecord.setOrderId(orderId); @@ -486,6 +529,7 @@ order.setBizOrderNo(orderNo); order.setAppUserId(userId); order.setTotalAmount(amount); + order.setRealPayAmount(amount); String vipType1 =""; switch (vipType){ case 1: @@ -521,6 +565,8 @@ order.setBizOrderNo(orderNo); order.setAppUserId(userId); order.setTotalAmount(amount); + order.setRealPayAmount(amount); + order.setBuyContent("充值"); this.save(order); Long orderId = order.getId(); -- Gitblit v1.7.1