提交修改
This commit is contained in:
parent
6a9814c83e
commit
eb1a060f56
@ -127,7 +127,7 @@ public interface VvTradeOrderLineDao extends BaseMapper<VvTradeOrderLineEntity>
|
|||||||
List<VvTradeOrderLineEntity> selectByAppCondition(IPage page,
|
List<VvTradeOrderLineEntity> selectByAppCondition(IPage page,
|
||||||
@IF @IN List<Long> tradeOrderIds,
|
@IF @IN List<Long> tradeOrderIds,
|
||||||
@IF String status,
|
@IF String status,
|
||||||
@IF@NE String deleteStatus,
|
@IF@NE @Column(VvTradeOrderLineEntity.status_) String deleteStatus,
|
||||||
@IF @GE @Column(VvTradeOrderLineEntity.create_timestamp) Long minCreateTimestamp,
|
@IF @GE @Column(VvTradeOrderLineEntity.create_timestamp) Long minCreateTimestamp,
|
||||||
@IF @LE @Column(VvTradeOrderLineEntity.create_timestamp) Long maxCreateTimestamp,
|
@IF @LE @Column(VvTradeOrderLineEntity.create_timestamp) Long maxCreateTimestamp,
|
||||||
@IF @LIKE String productName,
|
@IF @LIKE String productName,
|
||||||
@ -143,4 +143,7 @@ public interface VvTradeOrderLineDao extends BaseMapper<VvTradeOrderLineEntity>
|
|||||||
|
|
||||||
|
|
||||||
List<VvTradeOrderLineEntity> selectVvTradeOrderLineByTrackNumber(String trackNumber);
|
List<VvTradeOrderLineEntity> selectVvTradeOrderLineByTrackNumber(String trackNumber);
|
||||||
|
|
||||||
|
|
||||||
|
List<VvTradeOrderLineEntity> selectVvTradeOrderByTradeOrderIds(@IN List<Long> tradeOrderId);
|
||||||
}
|
}
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
package com.heyu.api.alibaba.request.mm.order;
|
||||||
|
|
||||||
|
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class VvTradeOrderLineTrackNumberDTO {
|
||||||
|
|
||||||
|
|
||||||
|
private List<VvTradeOrderLineEntity> vvTradeOrderLineEntities =new ArrayList<>();
|
||||||
|
|
||||||
|
/***
|
||||||
|
* 物流单号
|
||||||
|
*/
|
||||||
|
private String trackNumber;
|
||||||
|
|
||||||
|
}
|
||||||
@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON;
|
|||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.heyu.api.alibaba.request.mm.enums.OrderStatusEnums;
|
import com.heyu.api.alibaba.request.mm.enums.OrderStatusEnums;
|
||||||
import com.heyu.api.alibaba.request.mm.order.AppDeliveredDTO;
|
import com.heyu.api.alibaba.request.mm.order.AppDeliveredDTO;
|
||||||
|
import com.heyu.api.alibaba.request.mm.order.VvTradeOrderLineTrackNumberDTO;
|
||||||
import com.heyu.api.alibaba.request.mm.order.resp.*;
|
import com.heyu.api.alibaba.request.mm.order.resp.*;
|
||||||
import com.heyu.api.alibaba.request.vv.AppOrderRequest;
|
import com.heyu.api.alibaba.request.vv.AppOrderRequest;
|
||||||
import com.heyu.api.data.dao.vv.*;
|
import com.heyu.api.data.dao.vv.*;
|
||||||
@ -12,6 +13,7 @@ import com.heyu.api.data.entity.vv.*;
|
|||||||
import com.heyu.api.data.utils.BigDecimalUtil;
|
import com.heyu.api.data.utils.BigDecimalUtil;
|
||||||
import com.heyu.api.data.utils.R;
|
import com.heyu.api.data.utils.R;
|
||||||
import com.heyu.api.data.utils.SanUtils;
|
import com.heyu.api.data.utils.SanUtils;
|
||||||
|
import com.heyu.api.data.utils.StringUtils;
|
||||||
import com.heyu.api.utils.ISelect;
|
import com.heyu.api.utils.ISelect;
|
||||||
import com.heyu.api.utils.PPageUtils;
|
import com.heyu.api.utils.PPageUtils;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@ -85,17 +87,23 @@ public class AppOrderController {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// 获取子单
|
|
||||||
List<VvTradeOrderLineEntity> vvTradeOrderLineEntities = pageUtils.getRows();
|
|
||||||
// 获取订单
|
|
||||||
List<Long> tradeOrderIds = SanUtils.list2listFilterNull(vvTradeOrderLineEntities, VvTradeOrderLineEntity::getTradeOrderId);
|
|
||||||
|
|
||||||
|
// 获取子单
|
||||||
|
List<VvTradeOrderLineEntity> vvTradeOrderLineEntitiesGroupByTradeOrderId = pageUtils.getRows();
|
||||||
|
// 获取订单
|
||||||
|
List<Long> tradeOrderIds = SanUtils.list2listFilterNull(vvTradeOrderLineEntitiesGroupByTradeOrderId, VvTradeOrderLineEntity::getTradeOrderId);
|
||||||
|
// 拿到订单的顺序
|
||||||
List<VvTradeOrderEntity> tradeOrderEntities = vvTradeOrderDao.selectVvTradeOrderByTradeOrderIds(tradeOrderIds);
|
List<VvTradeOrderEntity> tradeOrderEntities = vvTradeOrderDao.selectVvTradeOrderByTradeOrderIds(tradeOrderIds);
|
||||||
|
|
||||||
|
// 拿到所有的子订单
|
||||||
|
List<VvTradeOrderLineEntity> vvTradeOrderLineEntities = vvTradeOrderLineDao.selectVvTradeOrderByTradeOrderIds(tradeOrderIds);
|
||||||
|
|
||||||
|
Map<Long, List<VvTradeOrderLineEntity>> listGroupByTradeOrderId = SanUtils.list2GroupBy(vvTradeOrderLineEntities, VvTradeOrderLineEntity::getTradeOrderId);
|
||||||
|
|
||||||
// 对订单进行排序,必须按照子单的顺序
|
// 对订单进行排序,必须按照子单的顺序
|
||||||
Map<Long, VvTradeOrderEntity> vvTradeOrderEntityMap = SanUtils.list2Map(tradeOrderEntities, VvTradeOrderEntity::getId);
|
Map<Long, VvTradeOrderEntity> vvTradeOrderEntityMap = SanUtils.list2Map(tradeOrderEntities, VvTradeOrderEntity::getId);
|
||||||
|
|
||||||
|
// 拿到所有的trackNumbers
|
||||||
List<String> trackNumbers = SanUtils.list2listFilterNull(vvTradeOrderLineEntities, VvTradeOrderLineEntity::getTrackNumber);
|
List<String> trackNumbers = SanUtils.list2listFilterNull(vvTradeOrderLineEntities, VvTradeOrderLineEntity::getTrackNumber);
|
||||||
|
|
||||||
List<VvPackageEntity> packageEntities = vvPackageDao.selectVvPackageByTrackNumbers(trackNumbers);
|
List<VvPackageEntity> packageEntities = vvPackageDao.selectVvPackageByTrackNumbers(trackNumbers);
|
||||||
@ -104,20 +112,52 @@ public class AppOrderController {
|
|||||||
|
|
||||||
List<AppTradeOrderLineResp> vvOrderListResps = new ArrayList<>();
|
List<AppTradeOrderLineResp> vvOrderListResps = new ArrayList<>();
|
||||||
|
|
||||||
|
// 如果有tracknumber ,则以 trader_order_id_sku_id 分组, 如果有trackNumber ,则以 trader_order_id_track_number_sku_id 分组
|
||||||
|
Map<Long, Map<String, VvTradeOrderLineTrackNumberDTO>> groupBytrader_order_id_sku_id = new HashMap<>();
|
||||||
for (VvTradeOrderLineEntity vvTradeOrderLineEntity : vvTradeOrderLineEntities) {
|
for (VvTradeOrderLineEntity vvTradeOrderLineEntity : vvTradeOrderLineEntities) {
|
||||||
AppTradeOrderLineResp appTradeOrderLineResp = new AppTradeOrderLineResp();
|
|
||||||
|
|
||||||
BeanUtils.copyProperties(vvTradeOrderLineEntity, appTradeOrderLineResp);
|
Long tradeOrderId = vvTradeOrderLineEntity.getTradeOrderId();
|
||||||
|
Map<String, VvTradeOrderLineTrackNumberDTO> keyMap = groupBytrader_order_id_sku_id.get(tradeOrderId);
|
||||||
|
if (keyMap == null) {
|
||||||
|
keyMap = new HashMap<>();
|
||||||
|
}
|
||||||
|
String key = vvTradeOrderLineEntity.getSkuId() + "";
|
||||||
|
|
||||||
VvPackageEntity packageDTO = vvPackageEntityMap.get(vvTradeOrderLineEntity.getTrackNumber());
|
if (StringUtils.isNotEmpty(vvTradeOrderLineEntity.getTrackNumber())) {
|
||||||
|
key = vvTradeOrderLineEntity.getTrackNumber() +"_"+ vvTradeOrderLineEntity.getSkuId() + "";
|
||||||
|
}
|
||||||
|
|
||||||
VvTradeOrderEntity vvTradeOrderEntity = vvTradeOrderEntityMap.get(vvTradeOrderLineEntity.getTradeOrderId());
|
VvTradeOrderLineTrackNumberDTO vvTradeOrderLineTrackNumberDTO = keyMap.get(key);
|
||||||
|
if (vvTradeOrderLineTrackNumberDTO == null) {
|
||||||
|
vvTradeOrderLineTrackNumberDTO = new VvTradeOrderLineTrackNumberDTO();
|
||||||
|
}
|
||||||
|
vvTradeOrderLineTrackNumberDTO.getVvTradeOrderLineEntities().add(vvTradeOrderLineEntity);
|
||||||
|
vvTradeOrderLineTrackNumberDTO.setTrackNumber(vvTradeOrderLineEntity.getTrackNumber());
|
||||||
|
|
||||||
appTradeOrderLineResp.setVvPackageEntity(packageDTO);
|
|
||||||
|
|
||||||
appTradeOrderLineResp.setTradeOrderEntity(vvTradeOrderEntity);
|
keyMap.put(key, vvTradeOrderLineTrackNumberDTO);
|
||||||
|
groupBytrader_order_id_sku_id.put(tradeOrderId, keyMap);
|
||||||
|
}
|
||||||
|
|
||||||
vvOrderListResps.add(appTradeOrderLineResp);
|
for (Long tradeOrderId : tradeOrderIds) {
|
||||||
|
VvTradeOrderLineEntity vvTradeOrderLineEntity = listGroupByTradeOrderId.get(tradeOrderId).get(0);
|
||||||
|
Map<String, VvTradeOrderLineTrackNumberDTO> stringVvTradeOrderLineTrackNumberDTOMap = groupBytrader_order_id_sku_id.get(tradeOrderId);
|
||||||
|
for (Map.Entry<String, VvTradeOrderLineTrackNumberDTO> mapEntry : stringVvTradeOrderLineTrackNumberDTOMap.entrySet()) {
|
||||||
|
VvTradeOrderLineTrackNumberDTO vvTradeOrderLineTrackNumberDTO = mapEntry.getValue();
|
||||||
|
AppTradeOrderLineResp appTradeOrderLineResp = new AppTradeOrderLineResp();
|
||||||
|
BeanUtils.copyProperties(vvTradeOrderLineEntity, appTradeOrderLineResp);
|
||||||
|
// 如果有tracknumber ,则以 trader_order_id_sku_id 分组, 如果有trackNumber ,则以 trader_order_id_track_number_sku_id 分组
|
||||||
|
if (StringUtils.isNotEmpty(vvTradeOrderLineTrackNumberDTO.getTrackNumber())) {
|
||||||
|
VvPackageEntity packageDTO = vvPackageEntityMap.get(vvTradeOrderLineTrackNumberDTO.getTrackNumber());
|
||||||
|
appTradeOrderLineResp.setVvPackageEntity(packageDTO);
|
||||||
|
}
|
||||||
|
appTradeOrderLineResp.setNum(vvTradeOrderLineTrackNumberDTO.getVvTradeOrderLineEntities().size());
|
||||||
|
VvTradeOrderEntity vvTradeOrderEntity = vvTradeOrderEntityMap.get(vvTradeOrderLineEntity.getTradeOrderId());
|
||||||
|
appTradeOrderLineResp.setTrackNumber(vvTradeOrderLineTrackNumberDTO.getTrackNumber());
|
||||||
|
appTradeOrderLineResp.setTradeOrderEntity(vvTradeOrderEntity);
|
||||||
|
|
||||||
|
vvOrderListResps.add(appTradeOrderLineResp);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return R.ok().setData(vvOrderListResps);
|
return R.ok().setData(vvOrderListResps);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user