| | |
| | | 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.controller.dependentStation.constant.OrderConstants; |
| | | import cc.mrbird.febs.mall.dto.*; |
| | | import cc.mrbird.febs.mall.entity.*; |
| | | import cc.mrbird.febs.mall.mapper.*; |
| | |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | 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 com.best.javaSdk.ClientParamEnum; |
| | |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | @Slf4j |
| | |
| | | List<MallOrderItem> mallOrderItemList = ValidateEntityUtils |
| | | .ensureColumnReturnEntityList(id, MallOrderItem::getOrderId, mallOrderItemMapper::selectList, "订单不存在"); |
| | | StringBuffer itemName = new StringBuffer(); |
| | | itemName.append("商品:"); |
| | | itemName.append("商品-"); |
| | | mallOrderItemList.forEach(mallOrderItem -> { |
| | | itemName.append(mallOrderItem.getGoodsName()+"-"+mallOrderItem.getSkuName()); |
| | | itemName.append(mallOrderItem.getGoodsName()); |
| | | itemName.append("-"); |
| | | itemName.append(mallOrderItem.getSkuName()); |
| | | itemName.append("-"); |
| | | itemName.append(mallOrderItem.getCnt()); |
| | | }); |
| | | Item item = new Item(); |
| | | item.setItemName(itemName.toString()); |
| | |
| | | kdCreateWaybillOrderPdfNotifyReq.setItems(items); |
| | | |
| | | kdCreateWaybillOrderPdfNotifyReq.setPiece(1); |
| | | KdCreateWaybillOrderPdfNotifyRsp pdfOrder = ClientParamService.getInstance(ClientParamEnum.TEST.name()).createPdfOrder(kdCreateWaybillOrderPdfNotifyReq); |
| | | |
| | | 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( |
| | |
| | | KdCancelOrderNotifyReq kdCancelOrderNotifyReq = new KdCancelOrderNotifyReq(); |
| | | kdCancelOrderNotifyReq.setTxLogisticId(mallOrderInfo.getOrderNo()); |
| | | kdCancelOrderNotifyReq.setReason("Don't want to buy"); |
| | | KdCancelOrderNotifyRsp kdCancelOrderNotifyRsp = ClientParamService.getInstance(ClientParamEnum.TEST.name()).cancelOrder(kdCancelOrderNotifyReq); |
| | | |
| | | 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, "取消发货失败"); |
| | | |
| | | //更新发货状态 |
| | |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse insurePay(Long id) { |
| | | // 1. 查询订单 |
| | | MallOrderInfo order = mallOrderInfoMapper.selectById(id); |
| | | if (order == null) { |
| | | return new FebsResponse().fail().message("订单不存在,刷新后重试"); |
| | | } |
| | | |
| | | // 2. 幂等检查(避免重复回调) |
| | | if (OrderStatusEnum.WAIT_PAY.getValue() != order.getStatus()) { |
| | | return new FebsResponse().fail().message("订单不是代付款状态"); |
| | | } |
| | | |
| | | // 3. 更新订单状态为待发货 |
| | | mallOrderInfoMapper.update( |
| | | null, |
| | | Wrappers.lambdaUpdate(MallOrderInfo.class) |
| | | .set(MallOrderInfo::getStatus, OrderStatusEnum.WAIT_SHIPPING.getValue()) |
| | | .set(MallOrderInfo::getPayTime, new Date()) |
| | | .set(MallOrderInfo::getPayMethod, "XT支付") |
| | | .set(MallOrderInfo::getPayResult, "1") |
| | | .eq(MallOrderInfo::getId, order.getId()) |
| | | ); |
| | | |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public void deliverGoodsByOrderNo(DeliverGoodsDto deliverGoodsDto) { |
| | | MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectByOrderNo(deliverGoodsDto.getOrderNo()); |
| | | if (mallOrderInfo == null) { |