From eab74d698bb5c840146cc7bd54be2462f3ca4074 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Mon, 29 Aug 2022 15:42:44 +0800 Subject: [PATCH] 20220822 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 134 ++++++++++++++++++++++++++++++++++++++------ 1 files changed, 116 insertions(+), 18 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 8a4e680..b213d54 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 @@ -16,6 +16,7 @@ import cc.mrbird.febs.mall.vo.OrderListVo; import cc.mrbird.febs.mall.vo.OrderRefundVo; import cc.mrbird.febs.pay.model.BrandWCPayRequestData; +import cc.mrbird.febs.pay.model.OrderStateDto; import cc.mrbird.febs.pay.service.IPayService; import cc.mrbird.febs.pay.service.IXcxPayService; import cc.mrbird.febs.pay.util.WeixinServiceUtil; @@ -33,6 +34,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -69,6 +71,9 @@ private final IXcxPayService iXcxPayService; private final IMallAchieveService mallAchieveService; private final MallRefundMapper mallRefundMapper; + private final MallTeamLeaderMapper mallTeamLeaderMapper; + private final MallMemberMapper mallMemberMapper; + private final DataDictionaryCustomMapper dataDictionaryCustomMapper; @Override @Transactional(rollbackFor = Exception.class) @@ -175,7 +180,11 @@ } mallOrderItemMapper.insert(orderItem); } - + //配送费 + BigDecimal delivaryAmount = addOrderDto.getDeliveryAmount() == null ? BigDecimal.ZERO : addOrderDto.getDeliveryAmount(); + if(BigDecimal.ZERO.compareTo(delivaryAmount) < 0 && 1 == addOrderDto.getIsHome()){ + total = total.add(delivaryAmount); + } orderInfo.setAmount(total); orderInfo.setCarriage(carriage); @@ -184,7 +193,7 @@ orderInfo.setPhone(address.getPhone()); orderInfo.setIsHome(addOrderDto.getIsHome()); //订单金额大于50,且选择送货上门,订单需要选择地址信息 - if(total.compareTo(new BigDecimal(50)) > 0 && 1 == addOrderDto.getIsHome()){ + if(1 == addOrderDto.getIsHome()){ if (StrUtil.isBlank(address.getLatitude())||StrUtil.isBlank(address.getLongitude())) { throw new FebsException("请添加地址"); } @@ -215,6 +224,44 @@ orderInfo.setStatus(OrderStatusEnum.CANCEL.getValue()); orderInfo.setCancelType(MallOrderInfo.CANCEL_BY_SELF); this.baseMapper.updateById(orderInfo); + } + + /** + * 根据用户ID和订单ID获取所购买商品名称 + * @return 所含商品名称(多个以","隔开) + */ + public String getProductNames(Long memberId, Long orderId) { + MallOrderInfo mallOrderInfo = this.baseMapper.selectOrderByMemberIdAndId(memberId, orderId); + List<MallOrderItem> details = mallOrderInfo.getItems(); + if (CollectionUtils.isEmpty(details)) { + return ""; + } + StringBuffer productNameBuffer = new StringBuffer(); + Integer maxLength = 30; + for (int i = 0; i< details.size(); i++) { + MallOrderItem mallOrderItem = details.get(i); + String goodsName = mallOrderItem.getGoodsName(); + if (goodsName == null) { + continue; + } + if (i == 0 && goodsName.length() > maxLength) { + productNameBuffer.append(goodsName.substring(0, maxLength) + "..."); + break; + } + if ((productNameBuffer.length() + goodsName.length()) > maxLength) { + productNameBuffer.append("等"); + break; + } + productNameBuffer.append(goodsName + ","); + } + String productNames = productNameBuffer.toString(); + if (productNames.endsWith(",")) { + productNames = productNames.substring(0, productNames.length() - 1); + } + if (productNames.endsWith(",等")) { + productNames = productNames.substring(0, productNames.length() - 2) + "等"; + } + return productNames; } @Override @@ -327,6 +374,23 @@ orderInfo.setTakeCode(takeCode); this.baseMapper.updateById(orderInfo); + + + +// OrderStateDto orderStateDto = new OrderStateDto(); +// orderStateDto.setOrderNo(orderInfo.getOrderNo()); +// String productNames = getProductNames(orderInfo.getMemberId(), orderInfo.getId()); +// orderStateDto.setGoodsName(StrUtil.isEmpty(productNames)?"商品":productNames); +// orderStateDto.setOrderState("已送达自提点"); +// orderStateDto.setTakeCode(orderInfo.getTakeCode()); +// String takeUniqueCode = orderInfo.getTakeUniqueCode(); +// MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(takeUniqueCode); +// orderStateDto.setAddressArea(mallTeamLeader.getAddressArea()); +// orderStateDto.setOpenId(mallMemberMapper.selectById(orderInfo.getMemberId()).getOpenId()); +// DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.WX_TEMPLATE_ID_ONE.getType(), DataDictionaryEnum.WX_TEMPLATE_ID_ONE.getCode()); +// orderStateDto.setTemplateId(dataDictionaryCustom.getValue()); +//// iXcxPayService.pushOrderToAddress(orderStateDto); +// iXcxPayService.uniformMessageSend(orderStateDto); Map<String, Object> map = new HashMap<>(); map.put("orderInfo", payResultStr); map.put("orderNo", orderInfo.getOrderNo()); @@ -604,22 +668,23 @@ mallRefundEntity.setState(3); mallRefundEntity.setAmount(mallOrderInfo.getAmount()); mallRefundMapper.insert(mallRefundEntity); - } - if(mallRefund.getState() == 1){ - return new FebsResponse().fail().message("订单已退款"); - } - if(mallRefund.getState() == 3){ - return new FebsResponse().fail().message("订单退款中"); - } - if(mallRefund.getState() == 2){ - mallRefundEntity.setId(mallRefund.getId()); - mallRefundEntity.setRefundNo(mallRefund.getRefundNo()); - mallRefundEntity.setMemberId(mallRefund.getMemberId()); - mallRefundEntity.setOrderId(mallRefund.getOrderId()); - mallRefundEntity.setType(mallRefund.getType()); - mallRefundEntity.setState(3); - mallRefundEntity.setAmount(mallRefund.getAmount()); - mallRefundMapper.updateById(mallRefundEntity); + }else{ + if(mallRefund.getState() == 1){ + return new FebsResponse().fail().message("订单已退款"); + } + if(mallRefund.getState() == 3){ + return new FebsResponse().fail().message("订单退款中"); + } + if(mallRefund.getState() == 2){ + mallRefundEntity.setId(mallRefund.getId()); + mallRefundEntity.setRefundNo(mallRefund.getRefundNo()); + mallRefundEntity.setMemberId(mallRefund.getMemberId()); + mallRefundEntity.setOrderId(mallRefund.getOrderId()); + mallRefundEntity.setType(mallRefund.getType()); + mallRefundEntity.setState(3); + mallRefundEntity.setAmount(mallRefund.getAmount()); + mallRefundMapper.updateById(mallRefundEntity); + } } //退款订单编号 @@ -659,6 +724,7 @@ mallRefundMapper.updateById(mallRefundOld); mallOrderInfoOld.setStatus(OrderStatusEnum.REFUNDED.getValue()); this.baseMapper.updateById(mallOrderInfoOld); + mallMoneyFlowService.addMoneyFlow(mallOrderInfoOld.getMemberId(), mallOrderInfoOld.getAmount(), MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue()); }else{ mallRefundOld.setState(2); mallRefundMapper.updateById(mallRefundOld); @@ -667,4 +733,36 @@ return new FebsResponse().success().message("退款成功"); } + @Override + public FebsResponse applyRefundOrder(ApplyRefundOrderDto applyRefundOrderDto) { + Long orderId = applyRefundOrderDto.getOrderId(); + Long itemId = applyRefundOrderDto.getItemId(); + MallMember member = LoginUserUtil.getLoginUser(); + MallOrderInfo mallOrderInfo = this.baseMapper.selectById(orderId); + if(ObjectUtil.isEmpty(mallOrderInfo)){ + return new FebsResponse().fail().message("订单不存在"); + } + + List<MallRefundEntity> mallRefundEntitieSuccess = mallRefundMapper.selectByItemIdAndOrderIdAndState(itemId,orderId,1); + List<MallRefundEntity> mallRefundEntitiesIng = mallRefundMapper.selectByItemIdAndOrderIdAndState(itemId,orderId,3); + if(CollUtil.isNotEmpty(mallRefundEntitieSuccess) || CollUtil.isNotEmpty(mallRefundEntitiesIng)){ + return new FebsResponse().fail().message("该订单无法申请退款"); + } + + MallOrderItem mallOrderItem = mallOrderItemMapper.selectById(itemId); + MallRefundEntity mallRefundEntity = new MallRefundEntity(); + mallRefundEntity.setRefundNo(mallOrderInfo.getOrderNo()+"_RITEM"+itemId); + mallRefundEntity.setRefundReason(applyRefundOrderDto.getRefundReason()); + mallRefundEntity.setRefundRemark(applyRefundOrderDto.getRefundRemark()); + mallRefundEntity.setRefundPic(applyRefundOrderDto.getRefundPic()); + mallRefundEntity.setMemberId(member.getId()); + mallRefundEntity.setState(3); + mallRefundEntity.setType(1); + mallRefundEntity.setOrderId(orderId); + mallRefundEntity.setItemId(itemId); + mallRefundEntity.setAmount(mallOrderItem.getAmount()); + mallRefundMapper.insert(mallRefundEntity); + return new FebsResponse().success().message("已申请"); + } + } -- Gitblit v1.9.1