From fcc1ced7adbaf3338c1e68b0c90275dfae14b4f8 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Mon, 17 Feb 2025 10:45:57 +0800
Subject: [PATCH] test: 更新测试用例中的运单编号
---
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java | 296 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 275 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 da38eb6..35c863c 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,11 +2,15 @@
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.entity.QueryRequest;
+import cc.mrbird.febs.common.enumerates.*;
+import cc.mrbird.febs.common.exception.FebsException;
+import cc.mrbird.febs.common.utils.ValidateEntityUtils;
import cc.mrbird.febs.mall.dto.*;
import cc.mrbird.febs.mall.entity.*;
import cc.mrbird.febs.mall.mapper.*;
import cc.mrbird.febs.mall.service.IAdminMallOrderService;
import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
+import cc.mrbird.febs.mall.service.IMallMoneyFlowService;
import cc.mrbird.febs.mall.vo.*;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
@@ -14,11 +18,19 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.best.javaSdk.ClientParamEnum;
+import com.best.javaSdk.ClientParamService;
+import com.best.javaSdk.kdCancelOrderNotify.request.KdCancelOrderNotifyReq;
+import com.best.javaSdk.kdCancelOrderNotify.response.KdCancelOrderNotifyRsp;
+import com.best.javaSdk.kdCreateWaybillOrderPdfNotify.request.*;
+import com.best.javaSdk.kdCreateWaybillOrderPdfNotify.response.KdCreateWaybillOrderPdfNotifyRsp;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.math.BigDecimal;
+import java.util.ArrayList;
import java.util.List;
@Slf4j
@@ -39,6 +51,8 @@
private final MallOrderRefundAddressMapper mallOrderRefundAddressMapper;
+ private final MallGoodsCommentMapper mallGoodsCommentMapper;
+
private final MallMoneyFlowMapper mallMoneyFlowMapper;
private final IApiMallMemberWalletService iApiMallMemberWalletService;
@@ -46,6 +60,10 @@
private final MallMemberPaymentMapper mallMemberPaymentMapper;
private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
+ private final IMallMoneyFlowService mallMoneyFlowService;
+ private final MallRefundMapper mallRefundMapper;
+ private final MallMemberMapper mallMemberMapper;
+
@Override
public IPage<MallOrderInfo> findOrderListInPage(MallOrderInfo mallOrderInfo, QueryRequest request) {
@@ -57,6 +75,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;
}
@@ -75,6 +116,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("请输入物流单号");
@@ -90,8 +135,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();
}
@@ -108,7 +155,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());
@@ -149,15 +196,11 @@
mallOrderInfoMapper.updateById(mallOrderInfo);
if(!"微信支付".equals(mallOrderInfo.getPayMethod()) && !"支付宝支付".equals(mallOrderInfo.getPayMethod())){
+ BigDecimal amount = mallOrderRefund.getAmount();
//用户钱包增加对应的余额
- iApiMallMemberWalletService.addBalance(mallOrderInfo.getAmount(),mallOrderInfo.getMemberId());
- //新增一条资金流水
- MallMoneyFlow mallMoneyFlow = new MallMoneyFlow();
- mallMoneyFlow.setMemberId(mallOrderRefund.getMemberId());
- mallMoneyFlow.setOrderNo(mallOrderInfo.getOrderNo());
- mallMoneyFlow.setType(4);
- mallMoneyFlow.setAmount(mallOrderInfo.getAmount());
- mallMoneyFlowMapper.insert(mallMoneyFlow);
+ iApiMallMemberWalletService.addBalance(amount, mallOrderInfo.getMemberId());
+
+ mallMoneyFlowService.addMoneyFlow(mallOrderRefund.getMemberId(), amount, MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue());
}
MallOrderRefundOperation mallOrderRefundOperation = new MallOrderRefundOperation();
@@ -221,17 +264,12 @@
mallOrderInfo.setStatus(6);
mallOrderInfoMapper.updateById(mallOrderInfo);
+ BigDecimal refundAmount = mallOrderRefund.getAmount();
//用户钱包增加对应的余额
- iApiMallMemberWalletService.addBalance(mallOrderInfo.getAmount(),mallOrderInfo.getMemberId());
+ iApiMallMemberWalletService.addBalance(refundAmount, mallOrderInfo.getMemberId());
//新增一条资金流水
- MallMoneyFlow mallMoneyFlow = new MallMoneyFlow();
- mallMoneyFlow.setMemberId(mallOrderRefund.getMemberId());
- mallMoneyFlow.setOrderNo(mallOrderInfo.getOrderNo());
- mallMoneyFlow.setType(4);
- mallMoneyFlow.setAmount(mallOrderInfo.getAmount());
- mallMoneyFlowMapper.insert(mallMoneyFlow);
-
+ mallMoneyFlowService.addMoneyFlow(mallOrderRefund.getMemberId(), refundAmount, MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue());
return new FebsResponse().success();
}
@@ -366,6 +404,219 @@
}
@Override
+ public IPage<AdminMallGoodsCommentVo> getCommentListInPage(AdminMallGoodsCommentDto adminMallGoodsCommentDto, QueryRequest request) {
+ Page<AdminMallGoodsCommentVo> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<AdminMallGoodsCommentVo> adminMallGoodsCommentVos = mallGoodsCommentMapper.getCommentListInPage(page, adminMallGoodsCommentDto);
+ return adminMallGoodsCommentVos;
+ }
+
+ @Override
+ public FebsResponse showStateSwitchOn(Long id) {
+ MallGoodsComment mallGoodsComment = mallGoodsCommentMapper.selectById(id);
+ if (ObjectUtil.isEmpty(mallGoodsComment)) {
+ return new FebsResponse().fail().message("评论不存在,请刷新当前页面");
+ }
+ mallGoodsComment.setShowState(MallGoodsComment.SHOW_STATE_ENABLE);
+ mallGoodsCommentMapper.updateById(mallGoodsComment);
+ return new FebsResponse().success();
+ }
+
+ @Override
+ public FebsResponse showStateSwitchOff(Long id) {
+ MallGoodsComment mallGoodsComment = mallGoodsCommentMapper.selectById(id);
+ if (ObjectUtil.isEmpty(mallGoodsComment)) {
+ return new FebsResponse().fail().message("评论不存在,请刷新当前页面");
+ }
+ mallGoodsComment.setShowState(MallGoodsComment.SHOW_STATE_DISABLED);
+ mallGoodsCommentMapper.updateById(mallGoodsComment);
+ return new FebsResponse().success();
+ }
+
+ @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 deliverPdfGoods(Long id) {
+ MallOrderInfo mallOrderInfo = ValidateEntityUtils.ensureColumnReturnEntity(id, MallOrderInfo::getId, mallOrderInfoMapper::selectOne, "订单不存在");
+ ValidateEntityUtils.ensureEqual(mallOrderInfo.getStatus(), OrderStatusEnum.WAIT_SHIPPING.getValue(), "订单不是待发货状态");
+ KdCreateWaybillOrderPdfNotifyReq kdCreateWaybillOrderPdfNotifyReq = new KdCreateWaybillOrderPdfNotifyReq();
+
+ MallMember mallMember = ValidateEntityUtils.ensureColumnReturnEntity(mallOrderInfo.getMemberId(), MallMember::getId, mallMemberMapper::selectOne, "会员不存在");
+
+ kdCreateWaybillOrderPdfNotifyReq.setTxLogisticId(mallOrderInfo.getOrderNo());
+ kdCreateWaybillOrderPdfNotifyReq.setServiceType("1");//服务类型(0-线下下单,1-线上下单)
+ kdCreateWaybillOrderPdfNotifyReq.setSpecial("1");
+
+ //发货人信息
+ Sender sender = new Sender();
+ sender.setName(dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.SENDER_NAME.getType(),
+ DataDictionaryEnum.SENDER_NAME.getCode()
+ ).getValue());
+ sender.setMobile(dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.SENDER_MOBILE.getType(),
+ DataDictionaryEnum.SENDER_MOBILE.getCode()
+ ).getValue());
+ sender.setAddress(dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.SENDER_ADDRESS.getType(),
+ DataDictionaryEnum.SENDER_ADDRESS.getCode()
+ ).getValue());
+ kdCreateWaybillOrderPdfNotifyReq.setSender(sender);
+
+ //收件人
+ Receiver receiver = new Receiver();
+ receiver.setName(mallMember.getRealName());
+ receiver.setMobile(mallMember.getPhone());
+ receiver.setAddress(mallOrderInfo.getAddress());
+ kdCreateWaybillOrderPdfNotifyReq.setReceiver(receiver);
+
+ //包裹
+ Items items = new Items();
+ ArrayList<Item> itemList = new ArrayList<>();
+ List<MallOrderItem> mallOrderItemList = ValidateEntityUtils
+ .ensureColumnReturnEntityList(id, MallOrderItem::getOrderId, mallOrderItemMapper::selectList, "订单不存在");
+ StringBuffer itemName = new StringBuffer();
+ itemName.append("商品-");
+ mallOrderItemList.forEach(mallOrderItem -> {
+ itemName.append(mallOrderItem.getGoodsName());
+ itemName.append("-");
+ itemName.append(mallOrderItem.getSkuName());
+ itemName.append("-");
+ itemName.append(mallOrderItem.getCnt());
+ });
+ Item item = new Item();
+ item.setItemName(itemName.toString());
+ itemList.add(item);
+ items.setItem(itemList);
+ kdCreateWaybillOrderPdfNotifyReq.setItems(items);
+
+ kdCreateWaybillOrderPdfNotifyReq.setPiece(1);
+ String state = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.SENDER_STATE.getType(),
+ DataDictionaryEnum.SENDER_STATE.getCode()
+ ).getValue();
+ KdCreateWaybillOrderPdfNotifyRsp pdfOrder;
+ if(state.equals("0")){
+ pdfOrder = ClientParamService.getInstance(ClientParamEnum.TEST.name()).createPdfOrder(kdCreateWaybillOrderPdfNotifyReq);
+ }else if(state.equals("1")){
+ pdfOrder = ClientParamService.getInstance(ClientParamEnum.PRD.name()).createPdfOrder(kdCreateWaybillOrderPdfNotifyReq);
+ }else{
+ throw new FebsException("一键发货失败,系统配置异常");
+ }
+ ValidateEntityUtils.ensureEqual(pdfOrder.getResult(), true, "一键发货失败,创建PDF电子面单异常");
+ //更新发货状态
+ mallOrderInfoMapper.updateOrderStateAndDeliveryState(
+ mallOrderInfo.getId(),
+ OrderStatusEnum.WAIT_FINISH.getValue(),
+ OrderDeliveryStateEnum.DELIVERY_ING.getValue());
+
+ MallExpressInfo mallExpressInfo = new MallExpressInfo();
+ mallExpressInfo.setMemberId(mallOrderInfo.getMemberId());
+ mallExpressInfo.setOrderId(mallOrderInfo.getId());
+ mallExpressInfo.setExpressNo(pdfOrder.getMailNo());
+ mallExpressInfo.setExpressCom("Best Logistic");
+ mallExpressInfo.setExpressCode("Best Logistic");
+ mallExpressInfoMapper.insert(mallExpressInfo);
+
+ return new FebsResponse().success().data(pdfOrder);
+ }
+
+ @Override
+ public FebsResponse cancelDeliver(Long id) {
+
+ MallOrderInfo mallOrderInfo = ValidateEntityUtils.ensureColumnReturnEntity(id, MallOrderInfo::getId, mallOrderInfoMapper::selectOne, "订单不存在");
+ ValidateEntityUtils.ensureEqual(mallOrderInfo.getStatus(), OrderStatusEnum.WAIT_FINISH.getValue(), "订单不是待收货状态");
+
+ KdCancelOrderNotifyReq kdCancelOrderNotifyReq = new KdCancelOrderNotifyReq();
+ kdCancelOrderNotifyReq.setTxLogisticId(mallOrderInfo.getOrderNo());
+ kdCancelOrderNotifyReq.setReason("Don't want to buy");
+
+ String state = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.SENDER_STATE.getType(),
+ DataDictionaryEnum.SENDER_STATE.getCode()
+ ).getValue();
+ KdCancelOrderNotifyRsp kdCancelOrderNotifyRsp;
+ if(state.equals("0")){
+ kdCancelOrderNotifyRsp = ClientParamService.getInstance(ClientParamEnum.TEST.name()).cancelOrder(kdCancelOrderNotifyReq);
+ }else if(state.equals("1")){
+ kdCancelOrderNotifyRsp = ClientParamService.getInstance(ClientParamEnum.PRD.name()).cancelOrder(kdCancelOrderNotifyReq);
+ }else{
+ throw new FebsException("取消发货失败,系统配置异常");
+ }
+ ValidateEntityUtils.ensureEqual(kdCancelOrderNotifyRsp.getResult(), true, "取消发货失败");
+
+ //更新发货状态
+ mallOrderInfoMapper.updateOrderStateAndDeliveryState(
+ mallOrderInfo.getId(),
+ OrderStatusEnum.WAIT_SHIPPING.getValue(),
+ OrderDeliveryStateEnum.DELIVERY_WAIT.getValue());
+
+ List<MallExpressInfo> mallExpressInfoList = ValidateEntityUtils.ensureColumnReturnEntityList(mallOrderInfo.getId(), MallExpressInfo::getOrderId, mallExpressInfoMapper::selectList, "未查询到物流信息");
+ mallExpressInfoList.forEach(mallExpressInfo -> mallExpressInfoMapper.deleteById(mallExpressInfo.getId()));
+ return new FebsResponse().success().message("取消发货成功,请重新发货");
+ }
+
+ @Override
public void deliverGoodsByOrderNo(DeliverGoodsDto deliverGoodsDto) {
MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectByOrderNo(deliverGoodsDto.getOrderNo());
if (mallOrderInfo == null) {
@@ -380,7 +631,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