From 0e12dcfca9fec7fc1812ade80031d6a71e91ab78 Mon Sep 17 00:00:00 2001 From: lzx_win <2602107437@qq.com> Date: Wed, 18 Jun 2025 18:19:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=86=8D=E6=AC=A1=E6=94=AF=E4=BB=98bug?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/service/impl/AppletIndexServiceImpl.java | 84 ++++++++++++++++++---- .../src/main/resources/application-dev.yml | 2 +- 2 files changed, 73 insertions(+), 13 deletions(-) diff --git a/module-common/src/main/java/org/jeecg/api/service/impl/AppletIndexServiceImpl.java b/module-common/src/main/java/org/jeecg/api/service/impl/AppletIndexServiceImpl.java index dc94ff2..a172b99 100644 --- a/module-common/src/main/java/org/jeecg/api/service/impl/AppletIndexServiceImpl.java +++ b/module-common/src/main/java/org/jeecg/api/service/impl/AppletIndexServiceImpl.java @@ -1,6 +1,8 @@ package org.jeecg.api.service.impl; +import cn.hutool.core.util.IdUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.Synchronized; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.jeecg.api.bean.PageBean; @@ -28,11 +30,13 @@ import org.jeecg.modules.commonShopClass.service.ICommonShopClassService; import org.jeecg.modules.hanHaiMember.entity.HanHaiMember; import org.jeecg.modules.hanHaiMember.service.IHanHaiMemberService; import org.jeecg.modules.pay.MpWxPayService; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.actuate.integration.IntegrationGraphEndpoint; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import javax.transaction.Transactional; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; @@ -286,6 +290,8 @@ public class AppletIndexServiceImpl implements AppletIndexService { //立即支付 + @Synchronized + @Transactional @Override public Result payOrder(String token,Integer type,String orderId){ HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); @@ -315,24 +321,78 @@ public class AppletIndexServiceImpl implements AppletIndexService { } }else { - CommonOrder commonOrder = commonOrderService.getById(orderId); - if (commonOrder.getStatus().equals("0")){ - BigDecimal payPrice = commonOrder.getPrice(); + log.info("开始处理订单,订单ID: {}", orderId); + + // 获取原始订单 + CommonOrder originalOrder = commonOrderService.getById(orderId); + if (originalOrder == null) { + log.error("订单不存在,订单ID: {}", orderId); + return Result.error("订单不存在"); + } + log.info("获取到原始订单: {}", originalOrder); + + // 生成新订单ID + String newOrderId = IdUtil.simpleUUID(); + log.info("生成的新订单ID: {}", newOrderId); + + // 复制订单属性到新订单 + CommonOrder newOrder = new CommonOrder(); + BeanUtils.copyProperties(originalOrder, newOrder); + newOrder.setId(newOrderId); +// newOrder.setPid(newOrderId); // 确保新订单的pid指向自己 + log.info("创建的新订单: {}", newOrder); + + // 保存新订单 + commonOrderService.save(newOrder); + CommonOrder savedOrder = commonOrderService.getById(newOrderId); + log.info("保存后查询的新订单: {}", savedOrder); + + // 处理子订单 + List children = commonOrderService.lambdaQuery() + .eq(CommonOrder::getPid, orderId) + .list(); + log.info("查询到的子订单数量: {}", children.size()); + + if (!children.isEmpty()) { + for (CommonOrder child : children) { + log.info("处理子订单: {}", child); + CommonOrder newChild = new CommonOrder(); + BeanUtils.copyProperties(child, newChild); + newChild.setId(IdUtil.simpleUUID()); // 为子订单生成新ID + newChild.setPid(newOrderId); // 指向新父订单 + commonOrderService.save(newChild); + log.info("保存的新子订单: {}", newChild); + + // 删除旧子订单 + commonOrderService.removeById(child.getId()); + log.info("已删除旧子订单,ID: {}", child.getId()); + } + } + + // 删除旧订单 + commonOrderService.removeById(orderId); + log.info("已删除旧订单,ID: {}", orderId); + + // 处理支付 + if ("0".equals(originalOrder.getStatus())) { + BigDecimal payPrice = originalOrder.getPrice(); + int amountCents = payPrice.multiply(new BigDecimal(100)).intValue(); + log.info("支付金额(分): {}", amountCents); - //吊起微信支付 - String s = payPrice.multiply(new BigDecimal(100)).toString(); - int i1 = Double.valueOf(s).intValue(); Object appOrder = mpWxPayService.createOrder( - "购买"+commonOrder.getTitle(), + "购买" + originalOrder.getTitle(), "127.0.0.1", - commonOrder.getId(), - i1, - commonOrder.getId(), + newOrderId, + amountCents, + newOrderId, hanHaiMember.getAppletOpenid(), - commonOrder.toString()); + originalOrder.toString()); - return Result.OK("支付成功",appOrder); + log.info("支付结果: {}", appOrder); + return Result.OK("支付成功", appOrder); } + + return Result.OK("订单处理成功"); } return Result.error("订单已支付"); } diff --git a/module-system/src/main/resources/application-dev.yml b/module-system/src/main/resources/application-dev.yml index d49ea09..93ce4a8 100644 --- a/module-system/src/main/resources/application-dev.yml +++ b/module-system/src/main/resources/application-dev.yml @@ -1,5 +1,5 @@ server: - port: 8002 + port: 8081 tomcat: max-swallow-size: -1 error: