diff --git a/api-mapper/src/main/java/com/heyu/api/data/enums/OrderActionEnums.java b/api-mapper/src/main/java/com/heyu/api/data/enums/OrderActionEnums.java new file mode 100644 index 0000000..d12f195 --- /dev/null +++ b/api-mapper/src/main/java/com/heyu/api/data/enums/OrderActionEnums.java @@ -0,0 +1,63 @@ +package com.heyu.api.data.enums; + +import java.security.PublicKey; + +public enum OrderActionEnums { + ; + + /*** + * 取消按钮 + */ + private String buttonName; + + + /*** + * 描述 + */ + private String desc; + + + /*** + * 接口url + */ + private String interfaceUri; + + AdminCancel("CancelButton","取消按钮","/mm/order/toShipping"), + AdminDelivered("DeliveredButton","妥投,确认收货","/mm/order/delivered"), + AdminShipped("ShippedButton","签收按钮","/mm/order/shipped"), + AdminToShipping("ToShippingButton","发货按钮","/mm/order/shipped"), + AdminUnShipping("UnShippingButton","退货退款","/mm/order/cancel"), + AdminUnShipping("UnShippingButton","退货退款","/mm/order/cancel"), + ; + + + OrderActionEnums(String buttonName, String desc, String interfaceUri) { + this.buttonName = buttonName; + this.desc = desc; + this.interfaceUri = interfaceUri; + } + + public String getButtonName() { + return buttonName; + } + + public void setButtonName(String buttonName) { + this.buttonName = buttonName; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } + + public String getInterfaceUri() { + return interfaceUri; + } + + public void setInterfaceUri(String interfaceUri) { + this.interfaceUri = interfaceUri; + } +} diff --git a/api-mapper/src/main/java/com/heyu/api/data/utils/SanUtils.java b/api-mapper/src/main/java/com/heyu/api/data/utils/SanUtils.java index 0687812..5add915 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/utils/SanUtils.java +++ b/api-mapper/src/main/java/com/heyu/api/data/utils/SanUtils.java @@ -3,6 +3,7 @@ package com.heyu.api.data.utils; import com.alibaba.fastjson.JSON; import com.heyu.api.common.LBiFunction0; import com.heyu.api.common.test.AriseUser; +import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.ClassUtils; @@ -18,7 +19,6 @@ import java.util.concurrent.*; @Slf4j public class SanUtils { - public static Map list2Map(List values, LBiFunction0 function) { try { if (CollectionUtils.isEmpty(values)) { @@ -55,6 +55,9 @@ public class SanUtils { } + + + public static List setNull(List values, LBiFunction0... functions) { List list = new ArrayList<>(); try { @@ -96,7 +99,7 @@ public class SanUtils { return list; } - public static Map> list2GroupBy(List values, LBiFunction0 function) { + public static Map> groupBy(List values, LBiFunction0 function) { if(CollectionUtils.isEmpty(values)){ return new HashMap<>(); } @@ -164,6 +167,70 @@ public class SanUtils { } + public static List merge(List values, LBiFunction0... functionArray) { + List list = new ArrayList<>(); + try { + if (CollectionUtils.isEmpty(values)) { + return list; + } + for (LBiFunction0 tlBiFunction0 : functionArray) { + Method method = getMethod(tlBiFunction0); + Class returnClazz = method.getReturnType(); + V v = values.get(0); + BigDecimal sum = new BigDecimal(0); + for (V value : values) { + Object r = method.invoke(value); + if (r != null) { + sum = NumberUtils.objToBigDecimalDefault(r, BigDecimal.ZERO).add(sum); + } + } + String getMethodName = method.getName(); + String setMethodName = "set" + getMethodName.substring(3); + Method methods[] = v.getClass().getDeclaredMethods(); + for (Method m : methods) { + if (m.getName().equals(setMethodName)) { + Object obj = parseBasicTypeWrapper(returnClazz, sum); + m.invoke(v,new Object[]{obj}); + } + } + list.add(v); + } + } catch (Exception e) { + e.printStackTrace(); + } + return list; + } + + + + public static void main(String[] args) { + + VvTradeOrderLineEntity vvTradeOrderLineEntity1 = new VvTradeOrderLineEntity(); + VvTradeOrderLineEntity vvTradeOrderLineEntity2 = new VvTradeOrderLineEntity(); + + + vvTradeOrderLineEntity1.setSalePrice(new BigDecimal(10)); + vvTradeOrderLineEntity2.setSalePrice(new BigDecimal(15)); + + + + vvTradeOrderLineEntity1.setPromotionPrice(new BigDecimal(3)); + vvTradeOrderLineEntity2.setPromotionPrice(new BigDecimal(2)); + + + List vvTradeOrderLineEntityList = new ArrayList<>(); + vvTradeOrderLineEntityList.add(vvTradeOrderLineEntity1); + vvTradeOrderLineEntityList.add(vvTradeOrderLineEntity2); + List vvTradeOrderLine = merge(vvTradeOrderLineEntityList,VvTradeOrderLineEntity::getSalePrice, + VvTradeOrderLineEntity::getPromotionPrice, + VvTradeOrderLineEntity::getRefundCount + ); + System.out.println(JSON.toJSONString(vvTradeOrderLine)); + + } + + + private static Method getSetMethod(LBiFunction0 function) { try { Method method = function.getClass().getDeclaredMethods()[1]; @@ -555,17 +622,6 @@ public class SanUtils { - public static void main(String[] args) { - - - Map map = new HashMap<>(); - map.put(null,"owiew"); - System.out.println(JSON.toJSONString(map)); - - System.out.println(map.get(null)); - - } - public static AriseUser getName(AriseUser ariseUser) { diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/resp/OrderActionDTO.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/resp/OrderActionDTO.java new file mode 100644 index 0000000..fffcc08 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/resp/OrderActionDTO.java @@ -0,0 +1,29 @@ +package com.heyu.api.alibaba.request.mm.order.resp; + + +import lombok.Data; + +@Data +public class OrderActionDTO { + + + + + /*** + * 取消按钮 + */ + private String buttonName; + + + /*** + * 描述 + */ + private String desc; + + + /*** + * 接口url + */ + private String interfaceUri; + +} diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/resp/PackageDTO.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/resp/PackageDTO.java index ed80f45..0ed70c4 100644 --- a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/resp/PackageDTO.java +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/resp/PackageDTO.java @@ -1,7 +1,6 @@ package com.heyu.api.alibaba.request.mm.order.resp; import com.heyu.api.data.entity.vv.VvPackageEntity; -import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity; import lombok.Data; import java.util.List; @@ -10,5 +9,5 @@ import java.util.List; @Data public class PackageDTO extends VvPackageEntity { - private List vvTradeOrderLineEntityList; + private List vvTradeOrderLineDOList; } diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/resp/VVOrderListResp.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/resp/VVOrderListResp.java index b159e26..15770ae 100644 --- a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/resp/VVOrderListResp.java +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/resp/VVOrderListResp.java @@ -2,7 +2,6 @@ package com.heyu.api.alibaba.request.mm.order.resp; import com.heyu.api.data.entity.vv.VvTradeOrderEntity; -import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity; import lombok.Data; import java.util.List; @@ -14,7 +13,7 @@ public class VVOrderListResp extends VvTradeOrderEntity { /*** * 订单行信息 */ - private List vvTradeOrderLineList; + private List vvTradeOrderLineDOList; /*** diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/resp/VvTradeOrderLineDO.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/resp/VvTradeOrderLineDO.java new file mode 100644 index 0000000..255b82d --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/resp/VvTradeOrderLineDO.java @@ -0,0 +1,8 @@ +package com.heyu.api.alibaba.request.mm.order.resp; + +import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity; +import lombok.Data; + +@Data +public class VvTradeOrderLineDO extends VvTradeOrderLineEntity { +} diff --git a/api-third/src/main/java/com/heyu/api/service/VvTradeOrderConvertService.java b/api-third/src/main/java/com/heyu/api/service/VvTradeOrderConvertService.java index 7f123b1..7f7a073 100644 --- a/api-third/src/main/java/com/heyu/api/service/VvTradeOrderConvertService.java +++ b/api-third/src/main/java/com/heyu/api/service/VvTradeOrderConvertService.java @@ -1,12 +1,16 @@ package com.heyu.api.service; +import com.heyu.api.alibaba.request.mm.order.VvTradeOrderLineTrackNumberDTO; import com.heyu.api.alibaba.request.mm.order.resp.VVOrderListResp; import com.heyu.api.data.entity.vv.VvTradeOrderEntity; import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity; import java.util.List; +import java.util.Map; public interface VvTradeOrderConvertService { List convertTradeOrderLineResp(List vvTradeOrderEntities, List list) ; + + Map> groupBytraderOrderIdSkuId(List vvTradeOrderLineEntities); } diff --git a/api-third/src/main/java/com/heyu/api/service/impl/BaseAction.java b/api-third/src/main/java/com/heyu/api/service/impl/BaseAction.java new file mode 100644 index 0000000..51517e1 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/service/impl/BaseAction.java @@ -0,0 +1,8 @@ +package com.heyu.api.service.impl; + +public class BaseAction { + + + + +} diff --git a/api-third/src/main/java/com/heyu/api/service/impl/VvTradeOrderConvertServiceImpl.java b/api-third/src/main/java/com/heyu/api/service/impl/VvTradeOrderConvertServiceImpl.java index db541aa..18f4346 100644 --- a/api-third/src/main/java/com/heyu/api/service/impl/VvTradeOrderConvertServiceImpl.java +++ b/api-third/src/main/java/com/heyu/api/service/impl/VvTradeOrderConvertServiceImpl.java @@ -1,25 +1,21 @@ package com.heyu.api.service.impl; +import com.heyu.api.alibaba.request.mm.order.VvTradeOrderLineTrackNumberDTO; import com.heyu.api.alibaba.request.mm.order.resp.PackageDTO; import com.heyu.api.alibaba.request.mm.order.resp.VVOrderListResp; +import com.heyu.api.alibaba.request.mm.order.resp.VvTradeOrderLineDO; import com.heyu.api.data.dao.vv.VvPackageDao; import com.heyu.api.data.entity.vv.VvPackageEntity; import com.heyu.api.data.entity.vv.VvTradeOrderEntity; import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity; -import com.heyu.api.data.enums.RoleEnums; -import com.heyu.api.data.service.vv.VvPackageService; import com.heyu.api.data.utils.SanUtils; import com.heyu.api.data.utils.StringUtils; import com.heyu.api.service.VvTradeOrderConvertService; -import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; @Service public class VvTradeOrderConvertServiceImpl implements VvTradeOrderConvertService { @@ -27,76 +23,90 @@ public class VvTradeOrderConvertServiceImpl implements VvTradeOrderConvertServic @Autowired private VvPackageDao vvPackageDao; - @Autowired - private VvPackageService vvPackageService; @Override public List convertTradeOrderLineResp(List vvTradeOrderEntities, List list) { List trackNumbers = SanUtils.list2listFilterNull(list, VvTradeOrderLineEntity::getTrackNumber); - if(CollectionUtils.isNotEmpty(trackNumbers)){ - for (String trackNumber : trackNumbers) { - vvPackageService.selectVvKuaidiAndUpdateData(trackNumber, RoleEnums.admin.getRole()); - } - } - - Map vvPackageEntityMap = new HashMap<>(); - if (CollectionUtils.isNotEmpty(trackNumbers)) { - List packageEntities = vvPackageDao.selectVvPackageByTrackNumbers(trackNumbers); - for (VvPackageEntity packageEntity : packageEntities) { - vvPackageEntityMap.put(packageEntity.getTrackNumber(), packageEntity); - } - } + List packageEntities = vvPackageDao.selectVvPackageByTrackNumbers(trackNumbers); + Map vvPackageEntityMap = SanUtils.list2Map(packageEntities, VvPackageEntity::getTrackNumber); + Map> groupBytraderOrderIdSkuId = groupBytraderOrderIdSkuId(list); List vvOrderListResps = new ArrayList<>(); for (VvTradeOrderEntity vvTradeOrderEntity : vvTradeOrderEntities) { VVOrderListResp vvOrderListResp = new VVOrderListResp(); BeanUtils.copyProperties(vvTradeOrderEntity, vvOrderListResp); - List vvTradeOrderLineEntityList = new ArrayList<>(); - for (VvTradeOrderLineEntity tradeOrderLineEntity : list) { - if (vvTradeOrderEntity.getId().equals(tradeOrderLineEntity.getTradeOrderId())) { - vvTradeOrderLineEntityList.add(tradeOrderLineEntity); - } - } - /*** - * 订单行信息 - */ - List vvTradeOrderLineList = new ArrayList<>(); - Map packageDTOMap = new HashMap(); - - for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) { - if (StringUtils.isNotBlank(tradeOrderLineEntity.getTrackNumber())) { - PackageDTO packageDTO = packageDTOMap.get(tradeOrderLineEntity.getTrackNumber()); - - if (packageDTO == null) { - VvPackageEntity vvPackage = vvPackageEntityMap.get(tradeOrderLineEntity.getTrackNumber()); - packageDTO = new PackageDTO(); - BeanUtils.copyProperties(vvPackage, packageDTO); - } - - List vvTradeOrderLineEntitys = packageDTO.getVvTradeOrderLineEntityList(); - if (vvTradeOrderLineEntitys == null) { - vvTradeOrderLineEntitys = new ArrayList<>(); - } - vvTradeOrderLineEntitys.add(tradeOrderLineEntity); - packageDTO.setVvTradeOrderLineEntityList(vvTradeOrderLineEntitys); - - packageDTOMap.put(tradeOrderLineEntity.getTrackNumber(), packageDTO); - - } else { - vvTradeOrderLineList.add(tradeOrderLineEntity); - } - } - + Map vvTradeOrderLineEntityMap = groupBytraderOrderIdSkuId.get(vvTradeOrderEntity.getId()); List packageList = new ArrayList<>(); - for (Map.Entry entry : packageDTOMap.entrySet()) { - packageList.add(entry.getValue()); + List vvTradeOrderLineDOList = new ArrayList<>(); + + for (Map.Entry vvTradeOrderLineTrackNumber : vvTradeOrderLineEntityMap.entrySet()) { + VvTradeOrderLineTrackNumberDTO vvTradeOrderLineTrackNumberDTO = vvTradeOrderLineTrackNumber.getValue(); + List vvTradeOrderLines = vvTradeOrderLineTrackNumberDTO.getVvTradeOrderLineEntities(); + + List mergeTradeOrderLineList = SanUtils.merge( + vvTradeOrderLines, + VvTradeOrderLineEntity::getPromotionPrice, + VvTradeOrderLineEntity::getSalePrice, + VvTradeOrderLineEntity::getNum, + VvTradeOrderLineEntity::getOriginPrice, + VvTradeOrderLineEntity::getShippingAmount, + VvTradeOrderLineEntity::getRefundAmount, + VvTradeOrderLineEntity::getRefundCount + ); + + List vvTradeOrderLineRespList = new ArrayList<>(); + for (VvTradeOrderLineEntity vvTradeOrderLine : mergeTradeOrderLineList) { + VvTradeOrderLineDO vvTradeOrderLineDO = new VvTradeOrderLineDO(); + BeanUtils.copyProperties(vvTradeOrderLine, vvTradeOrderLineDO); + vvTradeOrderLineRespList.add(vvTradeOrderLineDO); + } + String trackNumber = vvTradeOrderLineTrackNumberDTO.getTrackNumber(); + if (StringUtils.isNotEmpty(trackNumber)) { + VvPackageEntity vvPackage = vvPackageEntityMap.get(trackNumber); + if (vvPackage != null) { + PackageDTO packageDTO = new PackageDTO(); + BeanUtils.copyProperties(vvPackage, packageDTO); + packageDTO.setVvTradeOrderLineDOList(vvTradeOrderLineRespList); + packageList.add(packageDTO); + } + } else { + vvTradeOrderLineDOList.addAll(vvTradeOrderLineRespList); + } } - vvOrderListResp.setVvTradeOrderLineList(vvTradeOrderLineList); vvOrderListResp.setPackageList(packageList); + vvOrderListResp.setVvTradeOrderLineDOList(vvTradeOrderLineDOList); vvOrderListResps.add(vvOrderListResp); } return vvOrderListResps; } + + @Override + public Map> groupBytraderOrderIdSkuId(List vvTradeOrderLineEntities) { + // 如果有tracknumber ,则以 trader_order_id_sku_id 分组, 如果有trackNumber ,则以 trader_order_id_track_number_sku_id 分组 + Map> groupBytrader_order_id_sku_id = new LinkedHashMap<>(); + for (VvTradeOrderLineEntity vvTradeOrderLineEntity : vvTradeOrderLineEntities) { + Long tradeOrderId = vvTradeOrderLineEntity.getTradeOrderId(); + Map groupByTradeOrderIdTrackNumberSkudIdMap = groupBytrader_order_id_sku_id.get(tradeOrderId); + if (groupByTradeOrderIdTrackNumberSkudIdMap == null) { + groupByTradeOrderIdTrackNumberSkudIdMap = new HashMap<>(); + } + String key = tradeOrderId + "_" + vvTradeOrderLineEntity.getSkuId(); + + if (StringUtils.isNotEmpty(vvTradeOrderLineEntity.getTrackNumber())) { + key = tradeOrderId + "_" + vvTradeOrderLineEntity.getTrackNumber() + "_" + vvTradeOrderLineEntity.getSkuId(); + } + + VvTradeOrderLineTrackNumberDTO vvTradeOrderLineTrackNumberDTO = groupByTradeOrderIdTrackNumberSkudIdMap.get(key); + if (vvTradeOrderLineTrackNumberDTO == null) { + vvTradeOrderLineTrackNumberDTO = new VvTradeOrderLineTrackNumberDTO(); + } + vvTradeOrderLineTrackNumberDTO.getVvTradeOrderLineEntities().add(vvTradeOrderLineEntity); + vvTradeOrderLineTrackNumberDTO.setTrackNumber(vvTradeOrderLineEntity.getTrackNumber()); + groupByTradeOrderIdTrackNumberSkudIdMap.put(key, vvTradeOrderLineTrackNumberDTO); + groupBytrader_order_id_sku_id.put(tradeOrderId, groupByTradeOrderIdTrackNumberSkudIdMap); + } + return groupBytrader_order_id_sku_id; + } } diff --git a/api-third/src/main/java/com/heyu/api/service/impl/impl/CancelAction.java b/api-third/src/main/java/com/heyu/api/service/impl/impl/CancelAction.java new file mode 100644 index 0000000..d46781c --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/service/impl/impl/CancelAction.java @@ -0,0 +1,4 @@ +package com.heyu.api.service.impl.impl; + +public class CancelAction { +} diff --git a/api-third/src/main/java/com/heyu/api/service/impl/impl/DeliveredAction.java b/api-third/src/main/java/com/heyu/api/service/impl/impl/DeliveredAction.java new file mode 100644 index 0000000..b818514 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/service/impl/impl/DeliveredAction.java @@ -0,0 +1,4 @@ +package com.heyu.api.service.impl.impl; + +public class DeliveredAction { +} diff --git a/api-third/src/main/java/com/heyu/api/service/impl/impl/ShippedAction.java b/api-third/src/main/java/com/heyu/api/service/impl/impl/ShippedAction.java new file mode 100644 index 0000000..a9eb7e1 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/service/impl/impl/ShippedAction.java @@ -0,0 +1,4 @@ +package com.heyu.api.service.impl.impl; + +public class ShippedAction { +} diff --git a/api-third/src/main/java/com/heyu/api/service/impl/impl/ToShippingAction.java b/api-third/src/main/java/com/heyu/api/service/impl/impl/ToShippingAction.java new file mode 100644 index 0000000..c448611 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/service/impl/impl/ToShippingAction.java @@ -0,0 +1,4 @@ +package com.heyu.api.service.impl.impl; + +public class ToShippingAction { +} diff --git a/api-third/src/main/java/com/heyu/api/service/impl/impl/UnShippingAction.java b/api-third/src/main/java/com/heyu/api/service/impl/impl/UnShippingAction.java new file mode 100644 index 0000000..0230c61 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/service/impl/impl/UnShippingAction.java @@ -0,0 +1,4 @@ +package com.heyu.api.service.impl.impl; + +public class UnShippingAction { +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminBuyerController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminBuyerController.java index 0370760..824f026 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminBuyerController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminBuyerController.java @@ -83,10 +83,10 @@ public class AdminBuyerController { } List vvBuyerAddressEntities = vvBuyerAddressDao.selectMapByBuyerIds(buyerIds); - Map> listMap = SanUtils.list2GroupBy(vvBuyerAddressEntities, VvBuyerAddressEntity::getBuyerId); + Map> listMap = SanUtils.groupBy(vvBuyerAddressEntities, VvBuyerAddressEntity::getBuyerId); List vvPromoterEntities = vvPromoterDao.selectVvPromoterByPromoteIds(promoterIds); - Map> vvPromoterGroupBy = SanUtils.list2GroupBy(vvPromoterEntities, VvPromoterEntity::getPromoterId); + Map> vvPromoterGroupBy = SanUtils.groupBy(vvPromoterEntities, VvPromoterEntity::getPromoterId); List buyerDTOs = new ArrayList<>(); for (VvBuyerEntity vvBuyerAddressEntity : vvBuyerEntities) { VvBuyerDTO vvBuyerDTO = new VvBuyerDTO(); diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminOrderController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminOrderController.java index 58f5910..185570f 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminOrderController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminOrderController.java @@ -4,10 +4,6 @@ package com.heyu.api.controller.mm; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.metadata.IPage; import com.heyu.api.alibaba.request.mm.VvUnPackDTO; -import com.heyu.api.data.enums.OrderStatusEnums; -import com.heyu.api.data.enums.RefundTypeEnums; -import com.heyu.api.data.enums.ReverseStatusEnums; -import com.heyu.api.data.enums.ShippingTypeEnums; import com.heyu.api.alibaba.request.mm.order.*; import com.heyu.api.alibaba.request.mm.order.resp.VVOrderDetailResp; import com.heyu.api.alibaba.request.mm.order.resp.VVOrderListResp; @@ -15,7 +11,7 @@ import com.heyu.api.alibaba.request.mm.reverse.AppliyReverseRequest; import com.heyu.api.data.dao.vv.*; import com.heyu.api.data.dto.PackageDelivedDelayDTO; import com.heyu.api.data.entity.vv.*; -import com.heyu.api.data.enums.DelayTypeEnums; +import com.heyu.api.data.enums.*; import com.heyu.api.data.utils.BigDecimalUtil; import com.heyu.api.data.utils.DateUtils; import com.heyu.api.data.utils.R; @@ -167,7 +163,8 @@ public class AdminOrderController { vvOrderRequest.getModifyTimestampSort() ); - List vvOrderListResps = vvTradeOrderConvertService.convertTradeOrderLineResp(tradeOrderEntities,list); + List vvOrderListResps = vvTradeOrderConvertService.convertTradeOrderLineResp(tradeOrderEntities, list); + return R.ok().setData(vvOrderListResps); } @@ -199,9 +196,9 @@ public class AdminOrderController { /*** * 打包并发货 - * http://localhost:8888/mm/order/toPackAndShipping + * http://localhost:8888/mm/order/toShipping */ - @RequestMapping("/toPackAndShipping") + @RequestMapping("/toShipping") public R toPackAndShipping(@RequestBody VvToPackDTO vvOrderRequest) { List vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByIds(vvOrderRequest.getTradeOrderLineIds()); for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) { @@ -238,9 +235,9 @@ public class AdminOrderController { /*** * 取消打包 - * http://localhost:8888/mm/order/unpack + * http://localhost:8888/mm/order/unShipping */ - @RequestMapping("/unpack") + @RequestMapping("/unShipping") public R unpack(@RequestBody VvUnPackDTO vvOrderRequest) { List vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByIds(vvOrderRequest.getTradeOrderLineIds()); for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) { diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminProductController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminProductController.java index 19fafbf..f1e3161 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminProductController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminProductController.java @@ -228,7 +228,7 @@ public class AdminProductController { Map> groupbyProductDetail = - SanUtils.list2GroupBy(vvProductDTO.getVvProductDetailList(), VvProductDetailEntity::getId); + SanUtils.groupBy(vvProductDTO.getVvProductDetailList(), VvProductDetailEntity::getId); // 1. 如果传过来的参数存在,则更新 ,如果不存在 ,则直接物理删除掉 for (VvProductDetailEntity productDetailEntity : productDetailEntities) { @@ -247,7 +247,7 @@ public class AdminProductController { List vvSkuDTOS = vvProductDTO.getVvSkuList(); List vvSkuEntities = vvSkuDao.selectVvSkuByProductId(productId); - Map> groupbySkuDTOs = SanUtils.list2GroupBy(vvSkuDTOS, VvSkuDTO::getId); + Map> groupbySkuDTOs = SanUtils.groupBy(vvSkuDTOS, VvSkuDTO::getId); for (VvSkuEntity vvSkuEntity : vvSkuEntities) { if (CollectionUtils.notContainsKey(groupbySkuDTOs, vvSkuEntity.getId())) { vvSkuPropertyValueDao.deleteVvSkuPropertyValueRealBySkuId(vvSkuEntity.getId()); @@ -271,7 +271,7 @@ public class AdminProductController { if (skuId != null) { // 更新 Map> groupbySkuPropertyValue = - SanUtils.list2GroupBy(vvSkuPropertyValueEntities, VvSkuPropertyValueEntity::getId); + SanUtils.groupBy(vvSkuPropertyValueEntities, VvSkuPropertyValueEntity::getId); List vvSkuPropertyValueDB = vvSkuPropertyValueDao.selectVvSkuPropertyValueBySkuId(vvSkuDTO.getId()); for (VvSkuPropertyValueEntity vvSkuPropertyValueDb : vvSkuPropertyValueDB) { // 如果不存在 ,则直接删除 @@ -291,7 +291,7 @@ public class AdminProductController { List vvProductPropertyEntities = vvProductPropertyDao.selectVvProductPropertyByProductId(productId); Map> groupbyProductProperty = - SanUtils.list2GroupBy(vvProductPropertyDTOS, VvProductPropertyDTO::getId); + SanUtils.groupBy(vvProductPropertyDTOS, VvProductPropertyDTO::getId); for (VvProductPropertyEntity vvProductProperty : vvProductPropertyEntities) { // 对他进行编辑 @@ -308,7 +308,7 @@ public class AdminProductController { List vvProductPropertyValueEntities = vvProductPropertyDTO.getVvProductPropertyValueList(); Map> groupbyProductPropertyValue = - SanUtils.list2GroupBy(vvProductPropertyValueEntities, VvProductPropertyValueEntity::getId); + SanUtils.groupBy(vvProductPropertyValueEntities, VvProductPropertyValueEntity::getId); // 对他进行编辑 if (productPropertyId != null) { diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminReverseController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminReverseController.java index 114e9b0..9cb39ea 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminReverseController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminReverseController.java @@ -88,9 +88,9 @@ public class AdminReverseController { List vvReverseOrderEntities = pageUtils.getRows(); List reverseOrderIds = SanUtils.list2listFilterNull(vvReverseOrderEntities, VvReverseOrderEntity::getId); List reverseOrderLineEntities = vvReverseOrderLineDao.selectVvReverseOrderLineByReverseOrderIds(reverseOrderIds); - Map> vvReverseOrderLineEntityMap = SanUtils.list2GroupBy(reverseOrderLineEntities, VvReverseOrderLineEntity::getReverseOrderId); + Map> vvReverseOrderLineEntityMap = SanUtils.groupBy(reverseOrderLineEntities, VvReverseOrderLineEntity::getReverseOrderId); List vvReverseOrderProveEntities = vvReverseOrderProveDao.selectVvReverseOrderProveByReverseOrderId(reverseOrderIds); - Map> vvProveMap = SanUtils.list2GroupBy(vvReverseOrderProveEntities, VvReverseOrderProveEntity::getReverseOrderId); + Map> vvProveMap = SanUtils.groupBy(vvReverseOrderProveEntities, VvReverseOrderProveEntity::getReverseOrderId); List trackNumbers = new ArrayList<>(); for (VvReverseOrderEntity vvReverseOrderEntity : vvReverseOrderEntities) { if (StringUtils.isNotEmpty(vvReverseOrderEntity.getTrackNumber())) { diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppOrderController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppOrderController.java index 183b3f9..f6c936c 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppOrderController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppOrderController.java @@ -20,6 +20,7 @@ import com.heyu.api.data.utils.*; import com.heyu.api.jsapi.JsapiPrepay; import com.heyu.api.jsapi.dto.pay.DirectAPIv3JsapiPrepayResponse; import com.heyu.api.jsapi.dto.pay.WxPayVO; +import com.heyu.api.service.VvTradeOrderConvertService; import com.heyu.api.utils.ISelect; import com.heyu.api.utils.PPageUtils; import lombok.extern.slf4j.Slf4j; @@ -96,6 +97,11 @@ public class AppOrderController { @Autowired private JsapiPrepay jsApiPrepay; + @Autowired + private VvTradeOrderConvertService vvTradeOrderConvertService; + + + /*** * https://api.1024api.com/api-interface/app/order/list * @@ -143,36 +149,11 @@ public class AppOrderController { Map vvPackageEntityMap = SanUtils.list2Map(packageEntities, VvPackageEntity::getTrackNumber); - // 如果有tracknumber ,则以 trader_order_id_sku_id 分组, 如果有trackNumber ,则以 trader_order_id_track_number_sku_id 分组 - Map> groupBytrader_order_id_sku_id = new HashMap<>(); - for (VvTradeOrderLineEntity vvTradeOrderLineEntity : vvTradeOrderLineEntities) { - Long tradeOrderId = vvTradeOrderLineEntity.getTradeOrderId(); - Map keyMap = groupBytrader_order_id_sku_id.get(tradeOrderId); - if (keyMap == null) { - keyMap = new HashMap<>(); - } - String key = vvTradeOrderLineEntity.getSkuId() + ""; - - if (StringUtils.isNotEmpty(vvTradeOrderLineEntity.getTrackNumber())) { - key = vvTradeOrderLineEntity.getTrackNumber() +"_"+ vvTradeOrderLineEntity.getSkuId() + ""; - } - - VvTradeOrderLineTrackNumberDTO vvTradeOrderLineTrackNumberDTO = keyMap.get(key); - if (vvTradeOrderLineTrackNumberDTO == null) { - vvTradeOrderLineTrackNumberDTO = new VvTradeOrderLineTrackNumberDTO(); - } - vvTradeOrderLineTrackNumberDTO.getVvTradeOrderLineEntities().add(vvTradeOrderLineEntity); - vvTradeOrderLineTrackNumberDTO.setTrackNumber(vvTradeOrderLineEntity.getTrackNumber()); - - - keyMap.put(key, vvTradeOrderLineTrackNumberDTO); - groupBytrader_order_id_sku_id.put(tradeOrderId, keyMap); - } - + Map> groupBytraderOrderIdSkuId = vvTradeOrderConvertService.groupBytraderOrderIdSkuId(vvTradeOrderLineEntities); List appTradeOrderPackageDTOList = new ArrayList<>(); for (Long tradeOrderId : tradeOrderIds) { - Map stringVvTradeOrderLineTrackNumberDTOMap = groupBytrader_order_id_sku_id.get(tradeOrderId); + Map stringVvTradeOrderLineTrackNumberDTOMap = groupBytraderOrderIdSkuId.get(tradeOrderId); VvTradeOrderEntity vvTradeOrderEntity = vvTradeOrderEntityMap.get(tradeOrderId); AppTradeOrderPackageDTO appTradeOrderPackageDTO = new AppTradeOrderPackageDTO(); VvPackageEntity packageDTO = null; @@ -180,7 +161,6 @@ public class AppOrderController { for (Map.Entry mapEntry : stringVvTradeOrderLineTrackNumberDTOMap.entrySet()) { VvTradeOrderLineTrackNumberDTO vvTradeOrderLineTrackNumberDTO = mapEntry.getValue(); VvTradeOrderLineEntity vvTradeOrderLineEntity = vvTradeOrderLineTrackNumberDTO.getVvTradeOrderLineEntities().get(0); - AppTradeOrderLineDTO appTradeOrderLineResp = new AppTradeOrderLineDTO(); BeanUtils.copyProperties(vvTradeOrderLineEntity, appTradeOrderLineResp); @@ -191,10 +171,11 @@ public class AppOrderController { List tradeOrderLineIdList = new ArrayList<>(); for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) { //当时促销价 - promotionPrice = BigDecimalUtil.add(promotionPrice,tradeOrderLineEntity.getPromotionPrice()); - salePrice = BigDecimalUtil.add(salePrice,tradeOrderLineEntity.getSalePrice()); + promotionPrice = BigDecimalUtil.add(promotionPrice, tradeOrderLineEntity.getPromotionPrice()); + salePrice = BigDecimalUtil.add(salePrice, tradeOrderLineEntity.getSalePrice()); tradeOrderLineIdList.add(tradeOrderLineEntity.getId()); } + vvTradeOrderLineEntity.setPromotionPrice(promotionPrice); vvTradeOrderLineEntity.setSalePrice(salePrice); // 如果有tracknumber ,则以 trader_order_id_sku_id 分组, 如果有trackNumber ,则以 trader_order_id_track_number_sku_id 分组 @@ -204,7 +185,6 @@ public class AppOrderController { appTradeOrderLineResp.setNum(vvTradeOrderLineTrackNumberDTO.getVvTradeOrderLineEntities().size()); appTradeOrderLineResp.setTradeOrderLineIdList(tradeOrderLineIdList); appTradeOrderLineDTOList.add(appTradeOrderLineResp); - } appTradeOrderPackageDTO.setAppTradeOrderLineDTOList(appTradeOrderLineDTOList); diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppScrollController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppScrollController.java index aec4103..7ced800 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppScrollController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppScrollController.java @@ -29,7 +29,7 @@ public class AppScrollController { @RequestMapping("/list") public R query(@RequestBody AppBaseRequest request) { List vvScrollConfigEntityList = vvScrollConfigDao.selectVvScrollConfigAll(); - Map> configMap = SanUtils.list2GroupBy(vvScrollConfigEntityList, VvScrollConfigEntity::getType); + Map> configMap = SanUtils.groupBy(vvScrollConfigEntityList, VvScrollConfigEntity::getType); return R.ok().setData(configMap); }