From f16f74cacb9ef0ae4be89ed15353b6a449479d8c Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Wed, 28 May 2025 13:38:09 +0800 Subject: [PATCH] feat(mall): 添加轮播图背景图片功能 --- src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java | 202 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 193 insertions(+), 9 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 203a7bd..030d529 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 @@ -2,8 +2,10 @@ import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.entity.QueryRequest; -import cc.mrbird.febs.common.enumerates.FlowTypeEnum; -import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum; +import cc.mrbird.febs.common.enumerates.*; +import cc.mrbird.febs.common.exception.FebsException; +import cc.mrbird.febs.common.utils.AppContants; +import cc.mrbird.febs.common.utils.LoginUserUtil; import cc.mrbird.febs.mall.dto.*; import cc.mrbird.febs.mall.entity.*; import cc.mrbird.febs.mall.mapper.*; @@ -23,6 +25,7 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.util.Date; import java.util.List; @Slf4j @@ -53,6 +56,8 @@ private final DataDictionaryCustomMapper dataDictionaryCustomMapper; private final IMallMoneyFlowService mallMoneyFlowService; + private final MallRefundMapper mallRefundMapper; + private final MallMemberMapper mallMemberMapper; @Override @@ -65,6 +70,29 @@ public IPage<AdminMallOrderInfoVo> getOrderListInPage(MallOrderInfoDto mallOrderInfo, QueryRequest request) { Page<AdminMallOrderInfoVo> page = new Page<>(request.getPageNum(), request.getPageSize()); IPage<AdminMallOrderInfoVo> adminMallOrderInfoVos = this.baseMapper.selectOrderListInPage(page, mallOrderInfo); + 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.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()); + } + } + } return adminMallOrderInfoVos; } @@ -83,6 +111,10 @@ if(2 != status){ return new FebsResponse().fail().message("订单不是待发货状态"); } + Integer deliveryType = mallOrderInfo.getDeliveryType(); + if(2 != deliveryType){ + return new FebsResponse().fail().message("订单的配送方式不是快递"); + } String expressNo = deliverGoodsDto.getExpressNo(); if(StrUtil.isEmpty(expressNo)){ return new FebsResponse().fail().message("请输入物流单号"); @@ -98,8 +130,10 @@ mallExpressInfo.setExpressCom(expressCom); mallExpressInfoMapper.insert(mallExpressInfo); - mallOrderInfo.setStatus(3); - mallOrderInfoMapper.updateById(mallOrderInfo); + mallOrderInfoMapper.updateOrderStateAndDeliveryState(mallOrderInfo.getId(), + OrderStatusEnum.WAIT_FINISH.getValue(), + OrderDeliveryStateEnum.DELIVERY_FINISH.getValue()); + return new FebsResponse().success(); } @@ -116,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()); @@ -161,7 +195,15 @@ //用户钱包增加对应的余额 iApiMallMemberWalletService.addBalance(amount, mallOrderInfo.getMemberId()); - mallMoneyFlowService.addMoneyFlow(mallOrderRefund.getMemberId(), amount, MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue()); + mallMoneyFlowService.addMoneyFlow( + mallOrderInfo.getMemberId(), + amount, + ScoreFlowTypeEnum.REFUND.getValue(), + mallOrderInfo.getOrderNo(), + FlowTypeEnum.BALANCE.getValue(), + StrUtil.format(ScoreFlowTypeEnum.REFUND.getDesc(),amount), + 2 + ); } MallOrderRefundOperation mallOrderRefundOperation = new MallOrderRefundOperation(); @@ -230,7 +272,17 @@ iApiMallMemberWalletService.addBalance(refundAmount, mallOrderInfo.getMemberId()); //新增一条资金流水 - mallMoneyFlowService.addMoneyFlow(mallOrderRefund.getMemberId(), refundAmount, MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue()); + + + mallMoneyFlowService.addMoneyFlow( + mallOrderInfo.getMemberId(), + refundAmount, + ScoreFlowTypeEnum.REFUND.getValue(), + mallOrderInfo.getOrderNo(), + FlowTypeEnum.BALANCE.getValue(), + StrUtil.format(ScoreFlowTypeEnum.REFUND.getDesc(),refundAmount), + 2 + ); return new FebsResponse().success(); } @@ -394,6 +446,135 @@ } @Override + public void updateOrderStateAndDeliveryState(Long id, int value, int value1) { + mallOrderInfoMapper.updateOrderStateAndDeliveryState(id,value,value1); + } + + @Override + public IPage<MallRefundEntity> getOrderRefundListInPage(MallRefundEntity mallRefundEntity, QueryRequest request) { + Page<MallRefundEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<MallRefundEntity> mallRefundEntityIPage = mallRefundMapper.getOrderRefundListInPage(page, mallRefundEntity); + List<MallRefundEntity> records = mallRefundEntityIPage.getRecords(); + if(CollUtil.isNotEmpty(records)){ + for(MallRefundEntity mallRefundEntityPic : records){ + String refundPic = mallRefundEntityPic.getRefundPic(); + if(StrUtil.isNotEmpty(refundPic)){ + String[] split = StrUtil.split(refundPic, ","); + mallRefundEntityPic.setRefundPicList(split); + } + } + } + return mallRefundEntityIPage; + } + + @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("订单的配送方式不是快递"); + } + 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 = mallExpressInfoMapper.selectByOrderId(mallOrderInfo.getId()); + + if(ObjectUtil.isEmpty(mallExpressInfo)){ + return new FebsResponse().fail().message("请先发货"); + } + mallExpressInfo.setExpressNo(expressNo); + mallExpressInfo.setExpressCom(expressCom); + mallExpressInfoMapper.updateById(mallExpressInfo); + + return new FebsResponse().success(); + } + + @Override + public FebsResponse confirmOrder(AdminRefundOrderDto dto) { + Integer type = dto.getType(); + MallOrderInfo orderInfo = this.baseMapper.selectById(dto.getOrderId()); + if (orderInfo == null || AppContants.DEL_FLAG_Y == orderInfo.getDelFlag()) { + throw new FebsException("订单不存在"); + } + + if (orderInfo.getStatus() == OrderStatusEnum.REFUNDING.getValue()) { + throw new FebsException("已提交退款, 请勿重复提交"); + } + + if (orderInfo.getStatus() != OrderStatusEnum.WAIT_SHIPPING.getValue() + && orderInfo.getStatus() != OrderStatusEnum.WAIT_FINISH.getValue()) { + throw new FebsException("该订单不能退款"); + } + + Integer beforeStatus = orderInfo.getStatus(); + Long memberId = orderInfo.getMemberId(); + orderInfo.setStatus(OrderStatusEnum.REFUNDING.getValue()); + this.baseMapper.updateById(orderInfo); + + MallOrderRefund orderRefund = mallOrderRefundMapper.selectOrderRefundByOrderId(orderInfo.getId()); + if (orderRefund == null) { + orderRefund = new MallOrderRefund(); + orderRefund.setOrderId(orderInfo.getId()); + orderRefund.setMemberId(memberId); + orderRefund.setType(type); + orderRefund.setRefundTime(new Date()); + orderRefund.setBeforeStatus(beforeStatus); + orderRefund.setStatus(OrderRefundStatusEnum.REFUND_APPLY.getValue()); + + // 未发货则退运费,发货了则不退 + if (beforeStatus == 2) { + orderRefund.setAmount(orderInfo.getAmount().add(orderInfo.getCarriage())); + } else { + orderRefund.setAmount(orderInfo.getAmount()); + } + orderRefund.setDesp(StrUtil.format("系统发起退款{}", orderRefund.getAmount())); + orderRefund.setReason(StrUtil.format("系统发起退款{}", orderRefund.getAmount())); + mallOrderRefundMapper.insert(orderRefund); + } else { + orderRefund.setType(type); + orderRefund.setRefundTime(new Date()); + orderRefund.setBeforeStatus(beforeStatus); + orderRefund.setStatus(OrderRefundStatusEnum.REFUND_APPLY.getValue()); + // 未发货则退运费,发货了则不退 + if (beforeStatus == 2) { + orderRefund.setAmount(orderInfo.getAmount().add(orderInfo.getCarriage())); + } else { + orderRefund.setAmount(orderInfo.getAmount()); + } + orderRefund.setDesp(StrUtil.format("系统发起退款{}", orderRefund.getAmount())); + orderRefund.setReason(StrUtil.format("系统发起退款{}", orderRefund.getAmount())); + mallOrderRefundMapper.updateById(orderRefund); + } + + + MallOrderRefundOperation operation = new MallOrderRefundOperation(); + operation.setOrderId(orderInfo.getId()); + operation.setRefundId(orderRefund.getId()); + operation.setContent(StrUtil.format("系统发起退款{}", orderRefund.getAmount())); + mallOrderRefundOperationMapper.insert(operation); + return new FebsResponse().success().message("操作成功"); + } + + @Override public void deliverGoodsByOrderNo(DeliverGoodsDto deliverGoodsDto) { MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectByOrderNo(deliverGoodsDto.getOrderNo()); if (mallOrderInfo == null) { @@ -408,7 +589,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