From 4eb7bd043cc1fe6bf0cdf44f8c045698c0e9e21b Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Mon, 20 Jan 2025 11:34:01 +0800 Subject: [PATCH] refactor(mall): 确认收货功能 --- src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java | 88 +++++++++++++++++++++++++++++++++---------- 1 files changed, 67 insertions(+), 21 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java index 6713e9a..5134332 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java @@ -5,6 +5,7 @@ import cc.mrbird.febs.common.enumerates.FlowTypeEnum; import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum; import cc.mrbird.febs.common.enumerates.OrderDeliveryStateEnum; +import cc.mrbird.febs.common.enumerates.OrderStatusEnum; import cc.mrbird.febs.mall.dto.*; import cc.mrbird.febs.mall.entity.*; import cc.mrbird.febs.mall.mapper.*; @@ -24,6 +25,7 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.util.Date; import java.util.List; @Slf4j @@ -55,6 +57,7 @@ private final DataDictionaryCustomMapper dataDictionaryCustomMapper; private final IMallMoneyFlowService mallMoneyFlowService; private final MallRefundMapper mallRefundMapper; + private final MallMemberMapper mallMemberMapper; @Override @@ -70,11 +73,21 @@ if(CollUtil.isNotEmpty(adminMallOrderInfoVos.getRecords())){ for(AdminMallOrderInfoVo adminMallOrderInfoVo : adminMallOrderInfoVos.getRecords()){ Long orderId = adminMallOrderInfoVo.getId(); + adminMallOrderInfoVo.setGoodsAmount(adminMallOrderInfoVo.getAmount().subtract(adminMallOrderInfoVo.getCarriage())); List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(orderId); if(CollUtil.isNotEmpty(mallOrderItemList)){ StringBuffer stringBuffer = new StringBuffer(); for(MallOrderItem mallOrderItem : mallOrderItemList){ - stringBuffer.append(mallOrderItem.getGoodsName()).append("*").append(mallOrderItem.getCnt()).append(";"); + stringBuffer.append(mallOrderItem.getGoodsName()) + .append("-") + .append(mallOrderItem.getSkuName()) + .append("*").append(mallOrderItem.getCnt()).append(";"); + if(ObjectUtil.isNotEmpty(mallOrderItem.getMemberInviteId())){ + MallMember mallMember = mallMemberMapper.selectInfoByInviteId(mallOrderItem.getMemberInviteId()); + if(ObjectUtil.isNotEmpty(mallMember)){ + adminMallOrderInfoVo.setRefererName(mallMember.getName()); + } + } } adminMallOrderInfoVo.setGoodsName(stringBuffer.toString()); } @@ -102,24 +115,25 @@ if(2 != deliveryType){ return new FebsResponse().fail().message("订单的配送方式不是快递"); } - String expressNo = deliverGoodsDto.getExpressNo(); - if(StrUtil.isEmpty(expressNo)){ - return new FebsResponse().fail().message("请输入物流单号"); - } - String expressCom = deliverGoodsDto.getExpressCom(); - if(StrUtil.isEmpty(expressCom)){ - return new FebsResponse().fail().message("请输入物流公司"); - } - MallExpressInfo mallExpressInfo = new MallExpressInfo(); - mallExpressInfo.setMemberId(mallOrderInfo.getMemberId()); - mallExpressInfo.setOrderId(mallOrderInfo.getId()); - mallExpressInfo.setExpressNo(expressNo); - mallExpressInfo.setExpressCom(expressCom); - mallExpressInfoMapper.insert(mallExpressInfo); +// String expressNo = deliverGoodsDto.getExpressNo(); +// if(StrUtil.isEmpty(expressNo)){ +// return new FebsResponse().fail().message("请输入物流单号"); +// } +// String expressCom = deliverGoodsDto.getExpressCom(); +// if(StrUtil.isEmpty(expressCom)){ +// return new FebsResponse().fail().message("请输入物流公司"); +// } +// MallExpressInfo mallExpressInfo = new MallExpressInfo(); +// mallExpressInfo.setMemberId(mallOrderInfo.getMemberId()); +// mallExpressInfo.setOrderId(mallOrderInfo.getId()); +// mallExpressInfo.setExpressNo(expressNo); +// mallExpressInfo.setExpressCom(expressCom); +// mallExpressInfoMapper.insert(mallExpressInfo); - mallOrderInfo.setStatus(3); - mallOrderInfo.setDeliveryState(OrderDeliveryStateEnum.DELIVERY_ING.getValue()); - mallOrderInfoMapper.updateById(mallOrderInfo); + mallOrderInfoMapper.updateOrderStateAndDeliveryState(mallOrderInfo.getId(), + OrderStatusEnum.WAIT_FINISH.getValue(), + OrderDeliveryStateEnum.DELIVERY_FINISH.getValue()); + return new FebsResponse().success(); } @@ -136,7 +150,7 @@ StringBuffer orderItems = new StringBuffer(); for (MallOrderItem item : mallOrderItems){ StringBuffer orderItem = new StringBuffer(); - orderItems.append(item.getGoodsName()+"-"+item.getCnt()+"*"+item.getPrice()+"-合计"+item.getAmount()+"; \n "); + orderItems.append(item.getGoodsName()+"-"+item.getSkuName()+"-"+item.getCnt()+"*"+item.getPrice()+"-合计"+item.getAmount()+"; \n "); orderItems.append(orderItem); } adminOrderDetailVo.setOrderItems(orderItems.toString()); @@ -436,6 +450,35 @@ } @Override + public IPage<AdminGoodsStatisticsVo> goodsStatistics(MallOrderItem mallOrderItem, QueryRequest request) { + Page<AdminGoodsStatisticsVo> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<AdminGoodsStatisticsVo> adminGoodsStatisticsVos = mallOrderInfoMapper.getGoodsStatisticsInPage(page, mallOrderItem); + return adminGoodsStatisticsVos; + } + + @Override + public FebsResponse deliverGoodsUpdate(DeliverGoodsDto deliverGoodsDto) { + MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(deliverGoodsDto.getId()); + if(ObjectUtil.isEmpty(mallOrderInfo)){ + return new FebsResponse().fail().message("订单不存在,刷新后重试"); + } + Integer status = mallOrderInfo.getStatus(); + if(3 != status){ + return new FebsResponse().fail().message("订单不是待收货状态"); + } + Integer deliveryType = mallOrderInfo.getDeliveryType(); + if(2 != deliveryType){ + return new FebsResponse().fail().message("订单的配送方式不是快递"); + } + + mallOrderInfo.setStatus(OrderStatusEnum.FINISH.getValue()); + mallOrderInfo.setReceivingTime(new Date()); + mallOrderInfoMapper.updateById(mallOrderInfo); + + return new FebsResponse().success(); + } + + @Override public void deliverGoodsByOrderNo(DeliverGoodsDto deliverGoodsDto) { MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectByOrderNo(deliverGoodsDto.getOrderNo()); if (mallOrderInfo == null) { @@ -450,7 +493,10 @@ mallExpressInfo.setExpressCode(deliverGoodsDto.getExpressCode()); mallExpressInfoMapper.insert(mallExpressInfo); - mallOrderInfo.setStatus(3); - mallOrderInfoMapper.updateById(mallOrderInfo); + mallOrderInfoMapper.updateOrderStateAndDeliveryState(mallOrderInfo.getId(), + OrderStatusEnum.WAIT_FINISH.getValue(), + OrderDeliveryStateEnum.DELIVERY_FINISH.getValue()); +// mallOrderInfo.setStatus(3); +// mallOrderInfoMapper.updateById(mallOrderInfo); } } -- Gitblit v1.9.1