From ad96e226fed4cb87e6ccdf73084feeb120b2dfb0 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Fri, 10 Oct 2025 10:28:52 +0800
Subject: [PATCH] feat(mall):会员信息展示优化
---
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 66 +++++++++++++++++++++++++++++----
1 files changed, 58 insertions(+), 8 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
index 9321b44..e7e5c42 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -34,6 +34,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
@@ -281,10 +282,21 @@
mallMemberCoupon.setState(2);
mallMemberCouponMapper.updateById(mallMemberCoupon);
- //运费
- BigDecimal delivaryAmount = addOrderDto.getDeliveryAmount() == null ? BigDecimal.ZERO : addOrderDto.getDeliveryAmount();
- orderInfo.setCarriage(delivaryAmount);
+ BigDecimal delivaryAmount = BigDecimal.ZERO;
+ if(StrUtil.isEmpty(addOrderDto.getTakeUniqueCode())){
+ delivaryAmount = addOrderDto.getDeliveryAmount() == null ? BigDecimal.ZERO : addOrderDto.getDeliveryAmount();
+ orderInfo.setCarriage(delivaryAmount);
+ }else{
+ MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(addOrderDto.getTakeUniqueCode());
+ if(ObjectUtil.isEmpty(mallTeamLeader)){
+ throw new FebsException("自提点信息异常");
+ }
+ orderInfo.setCarriage(delivaryAmount);
+ orderInfo.setTakeCode(ShareCodeUtil.toSerialCode(orderInfo.getId()) + MallUtils.getRandomNum(10));
+ orderInfo.setTakeUniqueCode(mallTeamLeader.getUniqueCode());
+ orderInfo.setDeliveryType(1);
+ }
total = total.add(delivaryAmount);
orderInfo.setAmount(total);
orderInfo.setScoreAmount(totalScoreAmount);
@@ -300,6 +312,7 @@
orderInfo.setLatitude(address.getLatitude());
orderInfo.setLongitude(address.getLongitude());
this.baseMapper.updateById(orderInfo);
+
//过期时间修改成24小时
agentProducer.sendOrderCancelDelayMsg(orderInfo.getId(), 24 * 60 * 60 * 1000L);
return orderInfo.getId();
@@ -699,7 +712,7 @@
orderInfo.setPayOrderNo(payResultStr);
orderInfo.setPayMethod("支付宝支付");
- agentProducer.sendOrderReturn(orderInfo.getId());
+// agentProducer.sendOrderReturn(orderInfo.getId());
break;
case "3":
@@ -843,10 +856,31 @@
// }
// }
- OrderDetailVo orderDetailVo = MallOrderInfoConversion.INSTANCE.entityToDetailVo(orderInfo);
- MallExpressInfo expressInfo = expressInfoMapper.selectByOrderId(orderInfo.getId());
- if(ObjectUtil.isNotEmpty(expressInfo)){
+ OrderDetailVo orderDetailVo = MallOrderInfoConversion.INSTANCE.entityToDetailVo(orderInfo);
+ if(StrUtil.isNotEmpty(orderInfo.getTakeUniqueCode())){
+ MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(orderInfo.getTakeUniqueCode());
+
+ if(ObjectUtil.isNotEmpty(mallTeamLeader)){
+ orderDetailVo.setLeaderName(mallTeamLeader.getName());
+ orderDetailVo.setLeaderPhone(mallTeamLeader.getPhone());
+ orderDetailVo.setAddressPic(mallTeamLeader.getAddressPic());
+ orderDetailVo.setAddressArea(mallTeamLeader.getAddressArea());
+ orderDetailVo.setDetailAddress(mallTeamLeader.getDetailAddress());
+ orderDetailVo.setLeaderLongitude(mallTeamLeader.getLongitude());
+ orderDetailVo.setLeaderLatitude(mallTeamLeader.getLatitude());
+ }
+ }
+
+ MallExpressInfo expressInfo = expressInfoMapper.selectOne(
+ Wrappers.lambdaQuery(MallExpressInfo.class)
+ .eq(MallExpressInfo::getOrderId, orderInfo.getId())
+ .eq(MallExpressInfo::getOrderNo, orderInfo.getOrderNo())
+ .last("limit 1")
+ );
+
+// MallExpressInfo expressInfo = expressInfoMapper.selectByOrderId(orderInfo.getId());
+ if(ObjectUtil.isNotNull(expressInfo)){
orderDetailVo.setExpressNo(expressInfo.getExpressNo());
orderDetailVo.setExpressCom(expressInfo.getExpressCom());
}
@@ -870,7 +904,13 @@
@Transactional(rollbackFor = Exception.class)
public void confirmOrder(Long id) {
MallMember member = LoginUserUtil.getLoginUser();
- MallOrderInfo orderInfo = this.baseMapper.selectOrderByMemberIdAndId(member.getId(), id);
+// MallOrderInfo orderInfo = this.baseMapper.selectOrderByMemberIdAndId(member.getId(), id);
+ MallOrderInfo orderInfo = this.baseMapper.selectOne(
+ new LambdaQueryWrapper<MallOrderInfo>()
+ .eq(MallOrderInfo::getMemberId, member.getId())
+ .eq(MallOrderInfo::getId, id)
+ .last("limit 1")
+ );
if (orderInfo == null || AppContants.DEL_FLAG_Y == orderInfo.getDelFlag()) {
throw new FebsException("订单不存在");
}
@@ -878,6 +918,16 @@
if (orderInfo.getStatus() != OrderStatusEnum.WAIT_FINISH.getValue()) {
throw new FebsException("该状态不能确认收货");
}
+ if(orderInfo.getDeliveryType().equals(1)){
+ List<MallOrderItem> mallOrderItems = mallOrderItemMapper.selectList(
+ new LambdaQueryWrapper<MallOrderItem>()
+ .eq(MallOrderItem::getOrderId, id)
+ .eq(MallOrderItem::getLeaderState, 0)
+ );
+ if(CollUtil.isNotEmpty(mallOrderItems)){
+ throw new FebsException("请先核销"+mallOrderItems.get(0).getGoodsName());
+ }
+ }
List<MallRefundEntity> mallRefundEntities = mallRefundMapper.selectByItemIdAndOrderIdAndState(null, orderInfo.getId(), 3);
if(CollUtil.isNotEmpty(mallRefundEntities)){
--
Gitblit v1.9.1