提交修改

This commit is contained in:
quyixiao 2025-11-15 12:45:09 +08:00
parent a44f03a3df
commit e15bfef8fe
20 changed files with 302 additions and 129 deletions

View File

@ -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;
}
}

View File

@ -3,6 +3,7 @@ package com.heyu.api.data.utils;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.heyu.api.common.LBiFunction0; import com.heyu.api.common.LBiFunction0;
import com.heyu.api.common.test.AriseUser; import com.heyu.api.common.test.AriseUser;
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ClassUtils; import org.apache.commons.lang3.ClassUtils;
@ -18,7 +19,6 @@ import java.util.concurrent.*;
@Slf4j @Slf4j
public class SanUtils { public class SanUtils {
public static <T, R, V> Map<R, V> list2Map(List<V> values, LBiFunction0<T, R> function) { public static <T, R, V> Map<R, V> list2Map(List<V> values, LBiFunction0<T, R> function) {
try { try {
if (CollectionUtils.isEmpty(values)) { if (CollectionUtils.isEmpty(values)) {
@ -55,6 +55,9 @@ public class SanUtils {
} }
public static <T, R, V> List<R> setNull(List<V> values, LBiFunction0<T, R>... functions) { public static <T, R, V> List<R> setNull(List<V> values, LBiFunction0<T, R>... functions) {
List<R> list = new ArrayList<>(); List<R> list = new ArrayList<>();
try { try {
@ -96,7 +99,7 @@ public class SanUtils {
return list; return list;
} }
public static <T, R, V> Map<R, List<V>> list2GroupBy(List<V> values, LBiFunction0<T, R> function) { public static <T, R, V> Map<R, List<V>> groupBy(List<V> values, LBiFunction0<T, R> function) {
if(CollectionUtils.isEmpty(values)){ if(CollectionUtils.isEmpty(values)){
return new HashMap<>(); return new HashMap<>();
} }
@ -164,6 +167,70 @@ public class SanUtils {
} }
public static <T, V> List<V> merge(List<V> values, LBiFunction0<T, ? extends Number>... functionArray) {
List<V> list = new ArrayList<>();
try {
if (CollectionUtils.isEmpty(values)) {
return list;
}
for (LBiFunction0<T, ? extends Number> 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<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = new ArrayList<>();
vvTradeOrderLineEntityList.add(vvTradeOrderLineEntity1);
vvTradeOrderLineEntityList.add(vvTradeOrderLineEntity2);
List<VvTradeOrderLineEntity> vvTradeOrderLine = merge(vvTradeOrderLineEntityList,VvTradeOrderLineEntity::getSalePrice,
VvTradeOrderLineEntity::getPromotionPrice,
VvTradeOrderLineEntity::getRefundCount
);
System.out.println(JSON.toJSONString(vvTradeOrderLine));
}
private static <T, R> Method getSetMethod(LBiFunction0<T, R> function) { private static <T, R> Method getSetMethod(LBiFunction0<T, R> function) {
try { try {
Method method = function.getClass().getDeclaredMethods()[1]; Method method = function.getClass().getDeclaredMethods()[1];
@ -555,17 +622,6 @@ public class SanUtils {
public static void main(String[] args) {
Map<Long, String> 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) { public static AriseUser getName(AriseUser ariseUser) {

View File

@ -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;
}

View File

@ -1,7 +1,6 @@
package com.heyu.api.alibaba.request.mm.order.resp; package com.heyu.api.alibaba.request.mm.order.resp;
import com.heyu.api.data.entity.vv.VvPackageEntity; import com.heyu.api.data.entity.vv.VvPackageEntity;
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
@ -10,5 +9,5 @@ import java.util.List;
@Data @Data
public class PackageDTO extends VvPackageEntity { public class PackageDTO extends VvPackageEntity {
private List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList; private List<VvTradeOrderLineDO> vvTradeOrderLineDOList;
} }

View File

@ -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.VvTradeOrderEntity;
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
@ -14,7 +13,7 @@ public class VVOrderListResp extends VvTradeOrderEntity {
/*** /***
* 订单行信息 * 订单行信息
*/ */
private List<VvTradeOrderLineEntity> vvTradeOrderLineList; private List<VvTradeOrderLineDO> vvTradeOrderLineDOList;
/*** /***

View File

@ -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 {
}

View File

@ -1,12 +1,16 @@
package com.heyu.api.service; 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.alibaba.request.mm.order.resp.VVOrderListResp;
import com.heyu.api.data.entity.vv.VvTradeOrderEntity; import com.heyu.api.data.entity.vv.VvTradeOrderEntity;
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity; import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
import java.util.List; import java.util.List;
import java.util.Map;
public interface VvTradeOrderConvertService { public interface VvTradeOrderConvertService {
List<VVOrderListResp> convertTradeOrderLineResp(List<VvTradeOrderEntity> vvTradeOrderEntities, List<VVOrderListResp> convertTradeOrderLineResp(List<VvTradeOrderEntity> vvTradeOrderEntities,
List<VvTradeOrderLineEntity> list) ; List<VvTradeOrderLineEntity> list) ;
Map<Long, Map<String, VvTradeOrderLineTrackNumberDTO>> groupBytraderOrderIdSkuId(List<VvTradeOrderLineEntity> vvTradeOrderLineEntities);
} }

View File

@ -0,0 +1,8 @@
package com.heyu.api.service.impl;
public class BaseAction {
}

View File

@ -1,25 +1,21 @@
package com.heyu.api.service.impl; 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.PackageDTO;
import com.heyu.api.alibaba.request.mm.order.resp.VVOrderListResp; 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.dao.vv.VvPackageDao;
import com.heyu.api.data.entity.vv.VvPackageEntity; import com.heyu.api.data.entity.vv.VvPackageEntity;
import com.heyu.api.data.entity.vv.VvTradeOrderEntity; import com.heyu.api.data.entity.vv.VvTradeOrderEntity;
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity; 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.SanUtils;
import com.heyu.api.data.utils.StringUtils; import com.heyu.api.data.utils.StringUtils;
import com.heyu.api.service.VvTradeOrderConvertService; import com.heyu.api.service.VvTradeOrderConvertService;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service @Service
public class VvTradeOrderConvertServiceImpl implements VvTradeOrderConvertService { public class VvTradeOrderConvertServiceImpl implements VvTradeOrderConvertService {
@ -27,76 +23,90 @@ public class VvTradeOrderConvertServiceImpl implements VvTradeOrderConvertServic
@Autowired @Autowired
private VvPackageDao vvPackageDao; private VvPackageDao vvPackageDao;
@Autowired
private VvPackageService vvPackageService;
@Override @Override
public List<VVOrderListResp> convertTradeOrderLineResp(List<VvTradeOrderEntity> vvTradeOrderEntities, public List<VVOrderListResp> convertTradeOrderLineResp(List<VvTradeOrderEntity> vvTradeOrderEntities,
List<VvTradeOrderLineEntity> list) { List<VvTradeOrderLineEntity> list) {
List<String> trackNumbers = SanUtils.list2listFilterNull(list, VvTradeOrderLineEntity::getTrackNumber); List<String> trackNumbers = SanUtils.list2listFilterNull(list, VvTradeOrderLineEntity::getTrackNumber);
if(CollectionUtils.isNotEmpty(trackNumbers)){ List<VvPackageEntity> packageEntities = vvPackageDao.selectVvPackageByTrackNumbers(trackNumbers);
for (String trackNumber : trackNumbers) { Map<String, VvPackageEntity> vvPackageEntityMap = SanUtils.list2Map(packageEntities, VvPackageEntity::getTrackNumber);
vvPackageService.selectVvKuaidiAndUpdateData(trackNumber, RoleEnums.admin.getRole());
}
}
Map<String, VvPackageEntity> vvPackageEntityMap = new HashMap<>();
if (CollectionUtils.isNotEmpty(trackNumbers)) {
List<VvPackageEntity> packageEntities = vvPackageDao.selectVvPackageByTrackNumbers(trackNumbers);
for (VvPackageEntity packageEntity : packageEntities) {
vvPackageEntityMap.put(packageEntity.getTrackNumber(), packageEntity);
}
}
Map<Long, Map<String, VvTradeOrderLineTrackNumberDTO>> groupBytraderOrderIdSkuId = groupBytraderOrderIdSkuId(list);
List<VVOrderListResp> vvOrderListResps = new ArrayList<>(); List<VVOrderListResp> vvOrderListResps = new ArrayList<>();
for (VvTradeOrderEntity vvTradeOrderEntity : vvTradeOrderEntities) { for (VvTradeOrderEntity vvTradeOrderEntity : vvTradeOrderEntities) {
VVOrderListResp vvOrderListResp = new VVOrderListResp(); VVOrderListResp vvOrderListResp = new VVOrderListResp();
BeanUtils.copyProperties(vvTradeOrderEntity, vvOrderListResp); BeanUtils.copyProperties(vvTradeOrderEntity, vvOrderListResp);
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = new ArrayList<>(); Map<String, VvTradeOrderLineTrackNumberDTO> vvTradeOrderLineEntityMap = groupBytraderOrderIdSkuId.get(vvTradeOrderEntity.getId());
for (VvTradeOrderLineEntity tradeOrderLineEntity : list) {
if (vvTradeOrderEntity.getId().equals(tradeOrderLineEntity.getTradeOrderId())) {
vvTradeOrderLineEntityList.add(tradeOrderLineEntity);
}
}
/***
* 订单行信息
*/
List<VvTradeOrderLineEntity> vvTradeOrderLineList = new ArrayList<>();
Map<String, PackageDTO> 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<VvTradeOrderLineEntity> vvTradeOrderLineEntitys = packageDTO.getVvTradeOrderLineEntityList();
if (vvTradeOrderLineEntitys == null) {
vvTradeOrderLineEntitys = new ArrayList<>();
}
vvTradeOrderLineEntitys.add(tradeOrderLineEntity);
packageDTO.setVvTradeOrderLineEntityList(vvTradeOrderLineEntitys);
packageDTOMap.put(tradeOrderLineEntity.getTrackNumber(), packageDTO);
} else {
vvTradeOrderLineList.add(tradeOrderLineEntity);
}
}
List<PackageDTO> packageList = new ArrayList<>(); List<PackageDTO> packageList = new ArrayList<>();
for (Map.Entry<String, PackageDTO> entry : packageDTOMap.entrySet()) { List<VvTradeOrderLineDO> vvTradeOrderLineDOList = new ArrayList<>();
packageList.add(entry.getValue());
for (Map.Entry<String, VvTradeOrderLineTrackNumberDTO> vvTradeOrderLineTrackNumber : vvTradeOrderLineEntityMap.entrySet()) {
VvTradeOrderLineTrackNumberDTO vvTradeOrderLineTrackNumberDTO = vvTradeOrderLineTrackNumber.getValue();
List<VvTradeOrderLineEntity> vvTradeOrderLines = vvTradeOrderLineTrackNumberDTO.getVvTradeOrderLineEntities();
List<VvTradeOrderLineEntity> mergeTradeOrderLineList = SanUtils.merge(
vvTradeOrderLines,
VvTradeOrderLineEntity::getPromotionPrice,
VvTradeOrderLineEntity::getSalePrice,
VvTradeOrderLineEntity::getNum,
VvTradeOrderLineEntity::getOriginPrice,
VvTradeOrderLineEntity::getShippingAmount,
VvTradeOrderLineEntity::getRefundAmount,
VvTradeOrderLineEntity::getRefundCount
);
List<VvTradeOrderLineDO> 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.setPackageList(packageList);
vvOrderListResp.setVvTradeOrderLineDOList(vvTradeOrderLineDOList);
vvOrderListResps.add(vvOrderListResp); vvOrderListResps.add(vvOrderListResp);
} }
return vvOrderListResps; return vvOrderListResps;
} }
@Override
public Map<Long, Map<String, VvTradeOrderLineTrackNumberDTO>> groupBytraderOrderIdSkuId(List<VvTradeOrderLineEntity> vvTradeOrderLineEntities) {
// 如果有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 LinkedHashMap<>();
for (VvTradeOrderLineEntity vvTradeOrderLineEntity : vvTradeOrderLineEntities) {
Long tradeOrderId = vvTradeOrderLineEntity.getTradeOrderId();
Map<String, VvTradeOrderLineTrackNumberDTO> 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;
}
} }

View File

@ -0,0 +1,4 @@
package com.heyu.api.service.impl.impl;
public class CancelAction {
}

View File

@ -0,0 +1,4 @@
package com.heyu.api.service.impl.impl;
public class DeliveredAction {
}

View File

@ -0,0 +1,4 @@
package com.heyu.api.service.impl.impl;
public class ShippedAction {
}

View File

@ -0,0 +1,4 @@
package com.heyu.api.service.impl.impl;
public class ToShippingAction {
}

View File

@ -0,0 +1,4 @@
package com.heyu.api.service.impl.impl;
public class UnShippingAction {
}

View File

@ -83,10 +83,10 @@ public class AdminBuyerController {
} }
List<VvBuyerAddressEntity> vvBuyerAddressEntities = vvBuyerAddressDao.selectMapByBuyerIds(buyerIds); List<VvBuyerAddressEntity> vvBuyerAddressEntities = vvBuyerAddressDao.selectMapByBuyerIds(buyerIds);
Map<Long, List<VvBuyerAddressEntity>> listMap = SanUtils.list2GroupBy(vvBuyerAddressEntities, VvBuyerAddressEntity::getBuyerId); Map<Long, List<VvBuyerAddressEntity>> listMap = SanUtils.groupBy(vvBuyerAddressEntities, VvBuyerAddressEntity::getBuyerId);
List<VvPromoterEntity> vvPromoterEntities = vvPromoterDao.selectVvPromoterByPromoteIds(promoterIds); List<VvPromoterEntity> vvPromoterEntities = vvPromoterDao.selectVvPromoterByPromoteIds(promoterIds);
Map<String, List<VvPromoterEntity>> vvPromoterGroupBy = SanUtils.list2GroupBy(vvPromoterEntities, VvPromoterEntity::getPromoterId); Map<String, List<VvPromoterEntity>> vvPromoterGroupBy = SanUtils.groupBy(vvPromoterEntities, VvPromoterEntity::getPromoterId);
List<VvBuyerDTO> buyerDTOs = new ArrayList<>(); List<VvBuyerDTO> buyerDTOs = new ArrayList<>();
for (VvBuyerEntity vvBuyerAddressEntity : vvBuyerEntities) { for (VvBuyerEntity vvBuyerAddressEntity : vvBuyerEntities) {
VvBuyerDTO vvBuyerDTO = new VvBuyerDTO(); VvBuyerDTO vvBuyerDTO = new VvBuyerDTO();

View File

@ -4,10 +4,6 @@ package com.heyu.api.controller.mm;
import com.alibaba.fastjson.JSON; 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.VvUnPackDTO; 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.*;
import com.heyu.api.alibaba.request.mm.order.resp.VVOrderDetailResp; import com.heyu.api.alibaba.request.mm.order.resp.VVOrderDetailResp;
import com.heyu.api.alibaba.request.mm.order.resp.VVOrderListResp; 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.dao.vv.*;
import com.heyu.api.data.dto.PackageDelivedDelayDTO; import com.heyu.api.data.dto.PackageDelivedDelayDTO;
import com.heyu.api.data.entity.vv.*; 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.BigDecimalUtil;
import com.heyu.api.data.utils.DateUtils; import com.heyu.api.data.utils.DateUtils;
import com.heyu.api.data.utils.R; import com.heyu.api.data.utils.R;
@ -167,7 +163,8 @@ public class AdminOrderController {
vvOrderRequest.getModifyTimestampSort() vvOrderRequest.getModifyTimestampSort()
); );
List<VVOrderListResp> vvOrderListResps = vvTradeOrderConvertService.convertTradeOrderLineResp(tradeOrderEntities,list); List<VVOrderListResp> vvOrderListResps = vvTradeOrderConvertService.convertTradeOrderLineResp(tradeOrderEntities, list);
return R.ok().setData(vvOrderListResps); 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) { public R toPackAndShipping(@RequestBody VvToPackDTO vvOrderRequest) {
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByIds(vvOrderRequest.getTradeOrderLineIds()); List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByIds(vvOrderRequest.getTradeOrderLineIds());
for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) { 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) { public R unpack(@RequestBody VvUnPackDTO vvOrderRequest) {
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByIds(vvOrderRequest.getTradeOrderLineIds()); List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByIds(vvOrderRequest.getTradeOrderLineIds());
for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) { for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) {

View File

@ -228,7 +228,7 @@ public class AdminProductController {
Map<Long, List<VvProductDetailEntity>> groupbyProductDetail = Map<Long, List<VvProductDetailEntity>> groupbyProductDetail =
SanUtils.list2GroupBy(vvProductDTO.getVvProductDetailList(), VvProductDetailEntity::getId); SanUtils.groupBy(vvProductDTO.getVvProductDetailList(), VvProductDetailEntity::getId);
// 1. 如果传过来的参数存在则更新 如果不存在 则直接物理删除掉 // 1. 如果传过来的参数存在则更新 如果不存在 则直接物理删除掉
for (VvProductDetailEntity productDetailEntity : productDetailEntities) { for (VvProductDetailEntity productDetailEntity : productDetailEntities) {
@ -247,7 +247,7 @@ public class AdminProductController {
List<VvSkuDTO> vvSkuDTOS = vvProductDTO.getVvSkuList(); List<VvSkuDTO> vvSkuDTOS = vvProductDTO.getVvSkuList();
List<VvSkuEntity> vvSkuEntities = vvSkuDao.selectVvSkuByProductId(productId); List<VvSkuEntity> vvSkuEntities = vvSkuDao.selectVvSkuByProductId(productId);
Map<Long, List<VvSkuDTO>> groupbySkuDTOs = SanUtils.list2GroupBy(vvSkuDTOS, VvSkuDTO::getId); Map<Long, List<VvSkuDTO>> groupbySkuDTOs = SanUtils.groupBy(vvSkuDTOS, VvSkuDTO::getId);
for (VvSkuEntity vvSkuEntity : vvSkuEntities) { for (VvSkuEntity vvSkuEntity : vvSkuEntities) {
if (CollectionUtils.notContainsKey(groupbySkuDTOs, vvSkuEntity.getId())) { if (CollectionUtils.notContainsKey(groupbySkuDTOs, vvSkuEntity.getId())) {
vvSkuPropertyValueDao.deleteVvSkuPropertyValueRealBySkuId(vvSkuEntity.getId()); vvSkuPropertyValueDao.deleteVvSkuPropertyValueRealBySkuId(vvSkuEntity.getId());
@ -271,7 +271,7 @@ public class AdminProductController {
if (skuId != null) { if (skuId != null) {
// 更新 // 更新
Map<Long, List<VvSkuPropertyValueEntity>> groupbySkuPropertyValue = Map<Long, List<VvSkuPropertyValueEntity>> groupbySkuPropertyValue =
SanUtils.list2GroupBy(vvSkuPropertyValueEntities, VvSkuPropertyValueEntity::getId); SanUtils.groupBy(vvSkuPropertyValueEntities, VvSkuPropertyValueEntity::getId);
List<VvSkuPropertyValueEntity> vvSkuPropertyValueDB = vvSkuPropertyValueDao.selectVvSkuPropertyValueBySkuId(vvSkuDTO.getId()); List<VvSkuPropertyValueEntity> vvSkuPropertyValueDB = vvSkuPropertyValueDao.selectVvSkuPropertyValueBySkuId(vvSkuDTO.getId());
for (VvSkuPropertyValueEntity vvSkuPropertyValueDb : vvSkuPropertyValueDB) { for (VvSkuPropertyValueEntity vvSkuPropertyValueDb : vvSkuPropertyValueDB) {
// 如果不存在 则直接删除 // 如果不存在 则直接删除
@ -291,7 +291,7 @@ public class AdminProductController {
List<VvProductPropertyEntity> vvProductPropertyEntities = vvProductPropertyDao.selectVvProductPropertyByProductId(productId); List<VvProductPropertyEntity> vvProductPropertyEntities = vvProductPropertyDao.selectVvProductPropertyByProductId(productId);
Map<Long, List<VvProductPropertyDTO>> groupbyProductProperty = Map<Long, List<VvProductPropertyDTO>> groupbyProductProperty =
SanUtils.list2GroupBy(vvProductPropertyDTOS, VvProductPropertyDTO::getId); SanUtils.groupBy(vvProductPropertyDTOS, VvProductPropertyDTO::getId);
for (VvProductPropertyEntity vvProductProperty : vvProductPropertyEntities) { for (VvProductPropertyEntity vvProductProperty : vvProductPropertyEntities) {
// 对他进行编辑 // 对他进行编辑
@ -308,7 +308,7 @@ public class AdminProductController {
List<VvProductPropertyValueEntity> vvProductPropertyValueEntities = vvProductPropertyDTO.getVvProductPropertyValueList(); List<VvProductPropertyValueEntity> vvProductPropertyValueEntities = vvProductPropertyDTO.getVvProductPropertyValueList();
Map<Long, List<VvProductPropertyValueEntity>> groupbyProductPropertyValue = Map<Long, List<VvProductPropertyValueEntity>> groupbyProductPropertyValue =
SanUtils.list2GroupBy(vvProductPropertyValueEntities, VvProductPropertyValueEntity::getId); SanUtils.groupBy(vvProductPropertyValueEntities, VvProductPropertyValueEntity::getId);
// 对他进行编辑 // 对他进行编辑
if (productPropertyId != null) { if (productPropertyId != null) {

View File

@ -88,9 +88,9 @@ public class AdminReverseController {
List<VvReverseOrderEntity> vvReverseOrderEntities = pageUtils.getRows(); List<VvReverseOrderEntity> vvReverseOrderEntities = pageUtils.getRows();
List<Long> reverseOrderIds = SanUtils.list2listFilterNull(vvReverseOrderEntities, VvReverseOrderEntity::getId); List<Long> reverseOrderIds = SanUtils.list2listFilterNull(vvReverseOrderEntities, VvReverseOrderEntity::getId);
List<VvReverseOrderLineEntity> reverseOrderLineEntities = vvReverseOrderLineDao.selectVvReverseOrderLineByReverseOrderIds(reverseOrderIds); List<VvReverseOrderLineEntity> reverseOrderLineEntities = vvReverseOrderLineDao.selectVvReverseOrderLineByReverseOrderIds(reverseOrderIds);
Map<Long, List<VvReverseOrderLineEntity>> vvReverseOrderLineEntityMap = SanUtils.list2GroupBy(reverseOrderLineEntities, VvReverseOrderLineEntity::getReverseOrderId); Map<Long, List<VvReverseOrderLineEntity>> vvReverseOrderLineEntityMap = SanUtils.groupBy(reverseOrderLineEntities, VvReverseOrderLineEntity::getReverseOrderId);
List<VvReverseOrderProveEntity> vvReverseOrderProveEntities = vvReverseOrderProveDao.selectVvReverseOrderProveByReverseOrderId(reverseOrderIds); List<VvReverseOrderProveEntity> vvReverseOrderProveEntities = vvReverseOrderProveDao.selectVvReverseOrderProveByReverseOrderId(reverseOrderIds);
Map<Long, List<VvReverseOrderProveEntity>> vvProveMap = SanUtils.list2GroupBy(vvReverseOrderProveEntities, VvReverseOrderProveEntity::getReverseOrderId); Map<Long, List<VvReverseOrderProveEntity>> vvProveMap = SanUtils.groupBy(vvReverseOrderProveEntities, VvReverseOrderProveEntity::getReverseOrderId);
List<String> trackNumbers = new ArrayList<>(); List<String> trackNumbers = new ArrayList<>();
for (VvReverseOrderEntity vvReverseOrderEntity : vvReverseOrderEntities) { for (VvReverseOrderEntity vvReverseOrderEntity : vvReverseOrderEntities) {
if (StringUtils.isNotEmpty(vvReverseOrderEntity.getTrackNumber())) { if (StringUtils.isNotEmpty(vvReverseOrderEntity.getTrackNumber())) {

View File

@ -20,6 +20,7 @@ import com.heyu.api.data.utils.*;
import com.heyu.api.jsapi.JsapiPrepay; import com.heyu.api.jsapi.JsapiPrepay;
import com.heyu.api.jsapi.dto.pay.DirectAPIv3JsapiPrepayResponse; import com.heyu.api.jsapi.dto.pay.DirectAPIv3JsapiPrepayResponse;
import com.heyu.api.jsapi.dto.pay.WxPayVO; 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.ISelect;
import com.heyu.api.utils.PPageUtils; import com.heyu.api.utils.PPageUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -96,6 +97,11 @@ public class AppOrderController {
@Autowired @Autowired
private JsapiPrepay jsApiPrepay; private JsapiPrepay jsApiPrepay;
@Autowired
private VvTradeOrderConvertService vvTradeOrderConvertService;
/*** /***
* https://api.1024api.com/api-interface/app/order/list * https://api.1024api.com/api-interface/app/order/list
* *
@ -143,36 +149,11 @@ public class AppOrderController {
Map<String, VvPackageEntity> vvPackageEntityMap = SanUtils.list2Map(packageEntities, VvPackageEntity::getTrackNumber); Map<String, VvPackageEntity> vvPackageEntityMap = SanUtils.list2Map(packageEntities, VvPackageEntity::getTrackNumber);
// 如果有tracknumber ,则以 trader_order_id_sku_id 分组 如果有trackNumber 则以 trader_order_id_track_number_sku_id 分组 Map<Long, Map<String, VvTradeOrderLineTrackNumberDTO>> groupBytraderOrderIdSkuId = vvTradeOrderConvertService.groupBytraderOrderIdSkuId(vvTradeOrderLineEntities);
Map<Long, Map<String, VvTradeOrderLineTrackNumberDTO>> groupBytrader_order_id_sku_id = new HashMap<>();
for (VvTradeOrderLineEntity vvTradeOrderLineEntity : vvTradeOrderLineEntities) {
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() + "";
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);
}
List<AppTradeOrderPackageDTO> appTradeOrderPackageDTOList = new ArrayList<>(); List<AppTradeOrderPackageDTO> appTradeOrderPackageDTOList = new ArrayList<>();
for (Long tradeOrderId : tradeOrderIds) { for (Long tradeOrderId : tradeOrderIds) {
Map<String, VvTradeOrderLineTrackNumberDTO> stringVvTradeOrderLineTrackNumberDTOMap = groupBytrader_order_id_sku_id.get(tradeOrderId); Map<String, VvTradeOrderLineTrackNumberDTO> stringVvTradeOrderLineTrackNumberDTOMap = groupBytraderOrderIdSkuId.get(tradeOrderId);
VvTradeOrderEntity vvTradeOrderEntity = vvTradeOrderEntityMap.get(tradeOrderId); VvTradeOrderEntity vvTradeOrderEntity = vvTradeOrderEntityMap.get(tradeOrderId);
AppTradeOrderPackageDTO appTradeOrderPackageDTO = new AppTradeOrderPackageDTO(); AppTradeOrderPackageDTO appTradeOrderPackageDTO = new AppTradeOrderPackageDTO();
VvPackageEntity packageDTO = null; VvPackageEntity packageDTO = null;
@ -180,7 +161,6 @@ public class AppOrderController {
for (Map.Entry<String, VvTradeOrderLineTrackNumberDTO> mapEntry : stringVvTradeOrderLineTrackNumberDTOMap.entrySet()) { for (Map.Entry<String, VvTradeOrderLineTrackNumberDTO> mapEntry : stringVvTradeOrderLineTrackNumberDTOMap.entrySet()) {
VvTradeOrderLineTrackNumberDTO vvTradeOrderLineTrackNumberDTO = mapEntry.getValue(); VvTradeOrderLineTrackNumberDTO vvTradeOrderLineTrackNumberDTO = mapEntry.getValue();
VvTradeOrderLineEntity vvTradeOrderLineEntity = vvTradeOrderLineTrackNumberDTO.getVvTradeOrderLineEntities().get(0); VvTradeOrderLineEntity vvTradeOrderLineEntity = vvTradeOrderLineTrackNumberDTO.getVvTradeOrderLineEntities().get(0);
AppTradeOrderLineDTO appTradeOrderLineResp = new AppTradeOrderLineDTO(); AppTradeOrderLineDTO appTradeOrderLineResp = new AppTradeOrderLineDTO();
BeanUtils.copyProperties(vvTradeOrderLineEntity, appTradeOrderLineResp); BeanUtils.copyProperties(vvTradeOrderLineEntity, appTradeOrderLineResp);
@ -191,10 +171,11 @@ public class AppOrderController {
List<Long> tradeOrderLineIdList = new ArrayList<>(); List<Long> tradeOrderLineIdList = new ArrayList<>();
for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) { for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) {
//当时促销价 //当时促销价
promotionPrice = BigDecimalUtil.add(promotionPrice,tradeOrderLineEntity.getPromotionPrice()); promotionPrice = BigDecimalUtil.add(promotionPrice, tradeOrderLineEntity.getPromotionPrice());
salePrice = BigDecimalUtil.add(salePrice,tradeOrderLineEntity.getSalePrice()); salePrice = BigDecimalUtil.add(salePrice, tradeOrderLineEntity.getSalePrice());
tradeOrderLineIdList.add(tradeOrderLineEntity.getId()); tradeOrderLineIdList.add(tradeOrderLineEntity.getId());
} }
vvTradeOrderLineEntity.setPromotionPrice(promotionPrice); vvTradeOrderLineEntity.setPromotionPrice(promotionPrice);
vvTradeOrderLineEntity.setSalePrice(salePrice); vvTradeOrderLineEntity.setSalePrice(salePrice);
// 如果有tracknumber ,则以 trader_order_id_sku_id 分组 如果有trackNumber 则以 trader_order_id_track_number_sku_id 分组 // 如果有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.setNum(vvTradeOrderLineTrackNumberDTO.getVvTradeOrderLineEntities().size());
appTradeOrderLineResp.setTradeOrderLineIdList(tradeOrderLineIdList); appTradeOrderLineResp.setTradeOrderLineIdList(tradeOrderLineIdList);
appTradeOrderLineDTOList.add(appTradeOrderLineResp); appTradeOrderLineDTOList.add(appTradeOrderLineResp);
} }
appTradeOrderPackageDTO.setAppTradeOrderLineDTOList(appTradeOrderLineDTOList); appTradeOrderPackageDTO.setAppTradeOrderLineDTOList(appTradeOrderLineDTOList);

View File

@ -29,7 +29,7 @@ public class AppScrollController {
@RequestMapping("/list") @RequestMapping("/list")
public R query(@RequestBody AppBaseRequest request) { public R query(@RequestBody AppBaseRequest request) {
List<VvScrollConfigEntity> vvScrollConfigEntityList = vvScrollConfigDao.selectVvScrollConfigAll(); List<VvScrollConfigEntity> vvScrollConfigEntityList = vvScrollConfigDao.selectVvScrollConfigAll();
Map<String, List<VvScrollConfigEntity>> configMap = SanUtils.list2GroupBy(vvScrollConfigEntityList, VvScrollConfigEntity::getType); Map<String, List<VvScrollConfigEntity>> configMap = SanUtils.groupBy(vvScrollConfigEntityList, VvScrollConfigEntity::getType);
return R.ok().setData(configMap); return R.ok().setData(configMap);
} }