pull/1121/head
parent
7bb2132f8c
commit
afd0366628
|
|
@ -155,7 +155,7 @@ public class AlipayCallbackController extends XktBaseController {
|
|||
}
|
||||
}
|
||||
logger.warn("支付宝回调订单匹配失败:{}", params);
|
||||
return FAILURE;
|
||||
return SUCCESS;
|
||||
}
|
||||
logger.warn("支付宝验签未通过:{}", params);
|
||||
return FAILURE;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.ruoyi.web.controller.xkt;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.ListUtil;
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.github.pagehelper.Page;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
|
|
@ -139,6 +140,20 @@ public class StoreOrderController extends XktBaseController {
|
|||
return success();
|
||||
}
|
||||
|
||||
@ApiOperation(value = "订单物流信息")
|
||||
@GetMapping(value = "/{id}/track")
|
||||
public R<List<StoreOrderInfoVO.Track>> getOrderTracks(@PathVariable("id") Long id) {
|
||||
StoreOrder order = storeOrderService.getById(id);
|
||||
if (SecurityUtils.isAdmin()
|
||||
|| Objects.equals(order.getOrderUserId(), SecurityUtils.getUserId())
|
||||
|| Objects.equals(order.getStoreId(), SecurityUtils.getStoreId())) {
|
||||
return success(BeanUtil.copyToList(storeOrderService.getOrderExpressTracks(id),
|
||||
StoreOrderInfoVO.Track.class));
|
||||
}
|
||||
//没有订单权限
|
||||
return success(ListUtil.empty());
|
||||
}
|
||||
|
||||
|
||||
@PreAuthorize("@ss.hasAnyRoles('store,seller')||@ss.hasSupplierSubRole()")
|
||||
@ApiOperation(value = "订单分页查询")
|
||||
|
|
|
|||
|
|
@ -245,9 +245,6 @@ public class StoreOrderInfoVO {
|
|||
@ApiModelProperty(value = "订单明细")
|
||||
private List<Detail> orderDetails;
|
||||
|
||||
@ApiModelProperty(value = "轨迹信息")
|
||||
private List<Track> expressTracks;
|
||||
|
||||
@ApiModelProperty(value = "下单用户昵称")
|
||||
private String orderUserNickName;
|
||||
|
||||
|
|
@ -392,8 +389,8 @@ public class StoreOrderInfoVO {
|
|||
@ApiModelProperty(value = "更新时间")
|
||||
private Date updateTime;
|
||||
|
||||
@ApiModelProperty(value = "档口商品名称")
|
||||
private String prodName;
|
||||
// @ApiModelProperty(value = "档口商品名称")
|
||||
// private String prodName;
|
||||
|
||||
@ApiModelProperty(value = "商品货号")
|
||||
private String prodArtNum;
|
||||
|
|
|
|||
|
|
@ -390,8 +390,8 @@ public class StoreOrderPageItemVO extends StoreOrderDTO {
|
|||
@ApiModelProperty(value = "更新时间")
|
||||
private Date updateTime;
|
||||
|
||||
@ApiModelProperty(value = "档口商品名称")
|
||||
private String prodName;
|
||||
// @ApiModelProperty(value = "档口商品名称")
|
||||
// private String prodName;
|
||||
|
||||
@ApiModelProperty(value = "商品货号")
|
||||
private String prodArtNum;
|
||||
|
|
|
|||
|
|
@ -29,10 +29,6 @@ public class StoreOrderDetailDTO {
|
|||
* 商品ID
|
||||
*/
|
||||
private Long storeProdId;
|
||||
/**
|
||||
* 商品名称
|
||||
*/
|
||||
private String prodName;
|
||||
/**
|
||||
* 商品货号
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -43,5 +43,4 @@ public class StoreOrderInfoDTO extends StoreOrderDTO {
|
|||
|
||||
private List<StoreOrderDetailInfoDTO> orderDetails;
|
||||
|
||||
private List<ExpressTrackDTO> expressTracks;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package com.ruoyi.xkt.service;
|
|||
import com.github.pagehelper.Page;
|
||||
import com.ruoyi.xkt.domain.StoreOrder;
|
||||
import com.ruoyi.xkt.dto.express.ExpressPrintDTO;
|
||||
import com.ruoyi.xkt.dto.express.ExpressTrackDTO;
|
||||
import com.ruoyi.xkt.dto.order.*;
|
||||
import com.ruoyi.xkt.enums.EPayChannel;
|
||||
import com.ruoyi.xkt.enums.EPayPage;
|
||||
|
|
@ -61,6 +62,14 @@ public interface IStoreOrderService {
|
|||
*/
|
||||
StoreOrderInfoDTO getInfo(Long storeOrderId);
|
||||
|
||||
/**
|
||||
* 获取订单轨迹
|
||||
*
|
||||
* @param storeOrderId
|
||||
* @return
|
||||
*/
|
||||
List<ExpressTrackDTO> getOrderExpressTracks(Long storeOrderId);
|
||||
|
||||
/**
|
||||
* 分页查询订单
|
||||
*
|
||||
|
|
|
|||
|
|
@ -383,34 +383,6 @@ public class StoreOrderServiceImpl implements IStoreOrderService {
|
|||
//物流信息
|
||||
Map<Long, String> expressNameMap = expressService.getAllExpressNameMap();
|
||||
orderInfo.setExpressName(expressNameMap.get(order.getExpressId()));
|
||||
Map<String, List<StoreOrderDetailInfoDTO>> expressWaybillGroupMap = detailInfos.stream()
|
||||
.filter(o -> StrUtil.isNotEmpty(o.getExpressWaybillNo()))
|
||||
.collect(Collectors.groupingBy(StoreOrderDetailInfoDTO::getExpressWaybillNo));
|
||||
Map<String, List<ExpressTrackRecordDTO>> trackRecordGroupMap = expressService.listTrackRecord(
|
||||
expressWaybillGroupMap.keySet())
|
||||
.stream()
|
||||
.collect(Collectors.groupingBy(ExpressTrackRecordDTO::getExpressWaybillNo));
|
||||
List<ExpressTrackDTO> expressTracks = new ArrayList<>(expressWaybillGroupMap.size());
|
||||
for (Map.Entry<String, List<StoreOrderDetailInfoDTO>> entry : expressWaybillGroupMap.entrySet()) {
|
||||
ExpressTrackDTO expressTrackDTO = new ExpressTrackDTO();
|
||||
List<String> goodsSummaries = entry.getValue().stream()
|
||||
.map(o -> StrUtil.concat(true, o.getProdArtNum(), ", ", o.getColorName(), ", ",
|
||||
String.valueOf(o.getSize()))).collect(Collectors.toList());
|
||||
//发货时间
|
||||
Long detailId = CollUtil.getFirst(entry.getValue()).getId();
|
||||
StoreOrderOperationRecordDTO shipRecord = operationRecordService.getOneRecord(detailId,
|
||||
EOrderTargetTypeAction.ORDER_DETAIL, EOrderAction.SHIP);
|
||||
expressTrackDTO.setCreateTime(Optional.ofNullable(shipRecord)
|
||||
.map(StoreOrderOperationRecordDTO::getOperationTime).orElse(null));
|
||||
Long expressId = CollUtil.getFirst(entry.getValue()).getExpressId();
|
||||
expressTrackDTO.setExpressId(expressId);
|
||||
expressTrackDTO.setExpressName(expressNameMap.get(expressId));
|
||||
expressTrackDTO.setExpressWaybillNo(entry.getKey());
|
||||
expressTrackDTO.setGoodsSummary(StrUtil.join("; ", goodsSummaries));
|
||||
expressTrackDTO.setRecords(trackRecordGroupMap.get(entry.getKey()));
|
||||
expressTracks.add(expressTrackDTO);
|
||||
}
|
||||
orderInfo.setExpressTracks(expressTracks);
|
||||
Map<String, String> regionMap = expressService.getRegionNameMapCache();
|
||||
orderInfo.setDestinationProvinceName(regionMap.get(orderInfo.getDestinationProvinceCode()));
|
||||
orderInfo.setDestinationCityName(regionMap.get(orderInfo.getDestinationCityCode()));
|
||||
|
|
@ -449,6 +421,51 @@ public class StoreOrderServiceImpl implements IStoreOrderService {
|
|||
return orderInfo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ExpressTrackDTO> getOrderExpressTracks(Long storeOrderId) {
|
||||
Assert.notNull(storeOrderId);
|
||||
//物流信息
|
||||
Map<Long, String> expressNameMap = expressService.getAllExpressNameMap();
|
||||
Map<String, List<StoreOrderDetail>> expressWaybillGroupMap = storeOrderDetailMapper.selectList(Wrappers
|
||||
.lambdaQuery(StoreOrderDetail.class)
|
||||
.eq(StoreOrderDetail::getStoreOrderId, storeOrderId)
|
||||
.eq(SimpleEntity::getDelFlag, Constants.UNDELETED))
|
||||
.stream()
|
||||
.filter(o -> StrUtil.isNotEmpty(o.getExpressWaybillNo()))
|
||||
.collect(Collectors.groupingBy(StoreOrderDetail::getExpressWaybillNo));
|
||||
Map<String, List<ExpressTrackRecordDTO>> trackRecordGroupMap = expressService.listTrackRecord(
|
||||
expressWaybillGroupMap.keySet())
|
||||
.stream()
|
||||
.collect(Collectors.groupingBy(ExpressTrackRecordDTO::getExpressWaybillNo));
|
||||
List<ExpressTrackDTO> expressTracks = new ArrayList<>(expressWaybillGroupMap.size());
|
||||
for (Map.Entry<String, List<StoreOrderDetail>> entry : expressWaybillGroupMap.entrySet()) {
|
||||
ExpressTrackDTO expressTrackDTO = new ExpressTrackDTO();
|
||||
List<String> goodsSummaries = entry.getValue().stream()
|
||||
.map(o -> StrUtil.concat(true, o.getProdArtNum(), ", ", o.getColorName(), ", ",
|
||||
String.valueOf(o.getSize()))).collect(Collectors.toList());
|
||||
//发货时间
|
||||
Long detailId = CollUtil.getFirst(entry.getValue()).getId();
|
||||
StoreOrderOperationRecordDTO shipRecord = operationRecordService.getOneRecord(detailId,
|
||||
EOrderTargetTypeAction.ORDER_DETAIL, EOrderAction.SHIP);
|
||||
expressTrackDTO.setCreateTime(Optional.ofNullable(shipRecord)
|
||||
.map(StoreOrderOperationRecordDTO::getOperationTime).orElse(null));
|
||||
StoreOrderDetail oneDetail = CollUtil.getFirst(entry.getValue());
|
||||
Long expressId = oneDetail.getExpressId();
|
||||
expressTrackDTO.setExpressId(expressId);
|
||||
expressTrackDTO.setExpressName(expressNameMap.get(expressId));
|
||||
expressTrackDTO.setExpressWaybillNo(entry.getKey());
|
||||
expressTrackDTO.setGoodsSummary(StrUtil.join("; ", goodsSummaries));
|
||||
if (EExpressType.PLATFORM.getValue().equals(oneDetail.getExpressType())) {
|
||||
expressTrackDTO.setRecords(trackRecordGroupMap.get(entry.getKey()));
|
||||
} else {
|
||||
//TODO 商家自发货,从三方接口查询轨迹
|
||||
// String [] expressWaybillNos = entry.getKey().split(",");
|
||||
}
|
||||
expressTracks.add(expressTrackDTO);
|
||||
}
|
||||
return expressTracks;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<StoreOrderPageItemDTO> page(StoreOrderQueryDTO queryDTO) {
|
||||
Page<StoreOrderPageItemDTO> page = PageHelper.startPage(queryDTO.getPageNum(), queryDTO.getPageSize());
|
||||
|
|
|
|||
Loading…
Reference in New Issue