From 138e3641fbe49a114a399323aa145774f310627e Mon Sep 17 00:00:00 2001 From: xin <1099200748@qq.com> Date: Fri, 11 Jul 2025 18:06:31 +0800 Subject: [PATCH] 订单信息优化 --- oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderServiceImpl.java | 40 ++++++++++++++++++++++++++++++++++++---- 1 files changed, 36 insertions(+), 4 deletions(-) diff --git a/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderServiceImpl.java b/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderServiceImpl.java index aaae919..243f9ea 100644 --- a/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderServiceImpl.java +++ b/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderServiceImpl.java @@ -10,12 +10,15 @@ import com.oying.modules.pc.store.domain.Store; import com.oying.modules.pc.store.service.StoreService; import com.oying.modules.sh.domain.Order; +import com.oying.modules.sh.domain.OrderAddressSnapshot; import com.oying.modules.sh.domain.OrderProductSnapshot; +import com.oying.modules.sh.domain.UserAddress; import com.oying.modules.sh.domain.request.GeneratorOrder; import com.oying.modules.sh.domain.request.ProductOrder; import com.oying.modules.sh.domain.request.SubmitOrder; import com.oying.modules.sh.domain.vo.OrderInfo; import com.oying.modules.sh.domain.vo.ProductInfo; +import com.oying.modules.sh.service.OrderAddressSnapshotService; import com.oying.modules.sh.service.OrderProductSnapshotService; import com.oying.modules.sh.service.UserAddressService; import com.oying.utils.*; @@ -53,13 +56,17 @@ private final ProductService productService; private final SwiftPassService swiftPassService; private final OrderProductSnapshotService productSnapshotService; + private final OrderAddressSnapshotService addressSnapshotService; private final RedisUtils redisUtils; private final StoreService storeService; private final static String DESCRIBE = "哦应:"; @Override public PageResult<Order> queryAll(OrderQueryCriteria criteria, Page<Object> page) { - return PageUtil.toPage(orderMapper.findAll(criteria, page)); + criteria.setOffset(page.offset()); + List<Order> list = orderMapper.findAll(criteria); + Long total = orderMapper.countAll(criteria); + return PageUtil.toPage(list, total); } @Override @@ -70,8 +77,12 @@ @Override @Transactional(rollbackFor = Exception.class) public synchronized Order submitOrder(SubmitOrder submit, HttpServletRequest request) { - if (!submit.getPayType().equals(PayTypeEnum.HWC)) { - throw new BadRequestException("支付类型暂未开放"); + switch (submit.getPayType()) { + case HWC: + case HWC2: + break; + default: + throw new BadRequestException("支付类型暂未开放"); } String orderNum = redisUtils.generateOrderSn(GenerateEnum.ORDER.getKey()); // 总金额 @@ -82,7 +93,6 @@ OrderInfo info = generatorOrder(generator); // 商品快照 List<OrderProductSnapshot> snapshots = new ArrayList<>(); - for (ProductInfo productInfo : info.getProducts()) { Product product = productInfo.getProduct(); OrderProductSnapshot snapshot = new OrderProductSnapshot(); @@ -117,6 +127,8 @@ order.setOrderNum(orderNum); order.setOrderStatus(OrderStatusEnum.ZERO.getKey()); order.setOrderStatusDescribe(OrderStatusEnum.ZERO.getValue()); + order.setOrderRemark(submit.getRemark() != null ? submit.getRemark() : ""); + order.setOrderTime(submit.getDateTime()); order.setUserId(SecurityUtils.getCurrentUserId()); order.setUsername(SecurityUtils.getCurrentUsername()); Store store = storeService.getById(submit.getStoreId()); @@ -150,11 +162,31 @@ order.setPayMessage(PayStateEnum.SUCCESS.getValue()); order.setPayTime(DateUtil.localDateTimeFormat(now.toLocalDateTime(), DateUtil.SDF_YMDHMS)); } + UserAddress address = userAddressService.getById(submit.getAddressId()); + OrderAddressSnapshot snapshot = getOrderAddressSnapshot(orderNum, address); + addressSnapshotService.save(snapshot); orderMapper.insert(order); productSnapshotService.saveBatch(snapshots); return order; } + private static OrderAddressSnapshot getOrderAddressSnapshot(String orderNum, UserAddress address) { + OrderAddressSnapshot snapshot = new OrderAddressSnapshot(); + snapshot.setOrderNum(orderNum); + snapshot.setReceiverName(address.getReceiverName()); + snapshot.setReceiverPhone(address.getReceiverPhone()); + snapshot.setProvince(address.getProvince() != null ? address.getProvince() : ""); + snapshot.setCity(address.getCity() != null ? address.getCity() : ""); + snapshot.setDistrict(address.getDistrict() != null ? address.getDistrict() : ""); + snapshot.setStreet(address.getStreet() != null ? address.getStreet() : ""); + snapshot.setShortAddress(address.getShortAddress()); + snapshot.setDetail(address.getDetail()); + snapshot.setLongitude(address.getLongitude()); + snapshot.setLatitude(address.getLatitude()); + snapshot.setTag(address.getTag()); + return snapshot; + } + @Override @Transactional(rollbackFor = Exception.class) public synchronized OrderInfo generatorOrder(GeneratorOrder criteria) { -- Gitblit v1.9.3