提交修改
This commit is contained in:
parent
5e92f27913
commit
195cc38459
@ -1,13 +1,12 @@
|
|||||||
package com.heyu.api.data.utils;
|
package com.heyu.api.data.utils;
|
||||||
|
|
||||||
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;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
|
|
||||||
import java.lang.invoke.SerializedLambda;
|
import java.lang.invoke.SerializedLambda;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
@ -55,9 +54,6 @@ 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 {
|
||||||
@ -81,6 +77,23 @@ public class SanUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static <T, V, R> List<R> convert2list(List<V> values, Class clazz) {
|
||||||
|
List<R> list = new ArrayList<>();
|
||||||
|
if (CollectionUtils.isEmpty(values)) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
for (V value : values) {
|
||||||
|
Object o = clazz.newInstance();
|
||||||
|
BeanUtils.copyProperties(value, o);
|
||||||
|
list.add((R) o);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
public static <T, R, V> List<R> list2list(List<V> values, LBiFunction0<T, R> function) {
|
public static <T, R, V> List<R> list2list(List<V> values, LBiFunction0<T, R> function) {
|
||||||
List<R> list = new ArrayList<>();
|
List<R> list = new ArrayList<>();
|
||||||
try {
|
try {
|
||||||
@ -100,7 +113,7 @@ public class SanUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static <T, R, V> Map<R, List<V>> groupBy(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<>();
|
||||||
}
|
}
|
||||||
Map<R, List<V>> listmap = new HashMap<>();
|
Map<R, List<V>> listmap = new HashMap<>();
|
||||||
@ -123,7 +136,6 @@ public class SanUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static <T, R, V> R findAnyNotNull(List<V> values, LBiFunction0<T, R> function) {
|
public static <T, R, V> R findAnyNotNull(List<V> values, LBiFunction0<T, R> function) {
|
||||||
try {
|
try {
|
||||||
if (CollectionUtils.isEmpty(values)) {
|
if (CollectionUtils.isEmpty(values)) {
|
||||||
@ -167,67 +179,147 @@ public class SanUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static <T, V> List<V> merge(List<V> values, LBiFunction0<T, ? extends Number>... functionArray) {
|
public static <T, V, R> List<R> getFieldList(List<V> values, LBiFunction0<T, R> tlBiFunction0) {
|
||||||
List<V> list = new ArrayList<>();
|
List<R> list = new ArrayList<>();
|
||||||
try {
|
if (CollectionUtils.isEmpty(values)) {
|
||||||
if (CollectionUtils.isEmpty(values)) {
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
V v = values.get(0);
|
|
||||||
for (LBiFunction0<T, ? extends Number> tlBiFunction0 : functionArray) {
|
|
||||||
Method method = getMethod(tlBiFunction0);
|
|
||||||
Class<?> returnClazz = method.getReturnType();
|
|
||||||
|
|
||||||
BigDecimal sum = new BigDecimal(0);
|
return list;
|
||||||
for (V value : values) {
|
}
|
||||||
Object r = method.invoke(value);
|
Method method = getMethod(tlBiFunction0);
|
||||||
if (r != null) {
|
|
||||||
sum = NumberUtils.objToBigDecimalDefault(r, BigDecimal.ZERO).add(sum);
|
for (V value : values) {
|
||||||
}
|
try {
|
||||||
}
|
Object r = method.invoke(value);
|
||||||
String getMethodName = method.getName();
|
if (r != null) {
|
||||||
String setMethodName = "set" + getMethodName.substring(3);
|
list.add((R) r);
|
||||||
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});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
list.add(v);
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
}
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static <T, V, R> List<V> groupByMerge2List(LBiFunction0<T, R> groupByFunction, List<V> values, LBiFunction0<T, ? extends Object>... functionArray) {
|
||||||
|
List<V> vList = new ArrayList<>();
|
||||||
|
Map<R, V> map = groupByMerge2Map(groupByFunction, values, functionArray);
|
||||||
|
if (map != null) {
|
||||||
|
for (Map.Entry<R, V> entry : map.entrySet()) {
|
||||||
|
vList.add(entry.getValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return vList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T, V, R> Map<R, V> groupByMerge2Map(LBiFunction0<T, R> groupByFunction, List<V> values, LBiFunction0<T, ? extends Object>... functionArray) {
|
||||||
|
Map<R, List<V>> mapData = new HashMap<>();
|
||||||
|
if (CollectionUtils.isEmpty(values)) {
|
||||||
|
return new HashMap<>();
|
||||||
|
}
|
||||||
|
for (V value : values) {
|
||||||
|
try {
|
||||||
|
Method method = getMethod(groupByFunction);
|
||||||
|
Object object = method.invoke(value);
|
||||||
|
R r = null;
|
||||||
|
if (object != null) {
|
||||||
|
r = (R) object;
|
||||||
|
}
|
||||||
|
List<V> list = mapData.get(r);
|
||||||
|
if (list == null) {
|
||||||
|
list = new ArrayList<>();
|
||||||
|
}
|
||||||
|
list.add(value);
|
||||||
|
mapData.put(r, list);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Map<R, V> result = new HashMap<>();
|
||||||
|
if (!mapData.isEmpty()) {
|
||||||
|
for (Map.Entry<R, List<V>> map : mapData.entrySet()) {
|
||||||
|
List<V> list = map.getValue();
|
||||||
|
if (com.heyu.api.data.utils.CollectionUtils.isNotEmpty(list)) {
|
||||||
|
V v = merge(list, functionArray);
|
||||||
|
result.put(map.getKey(), v);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static <T, V> V merge(List<V> values, LBiFunction0<T, ? extends Object>... functionArray) {
|
||||||
|
try {
|
||||||
|
if (CollectionUtils.isEmpty(values)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
V v = values.get(0);
|
||||||
|
for (LBiFunction0<T, ? extends Object> tlBiFunction0 : functionArray) {
|
||||||
|
Method method = getMethod(tlBiFunction0);
|
||||||
|
Class<?> returnClazz = method.getReturnType();
|
||||||
|
BigDecimal sum = new BigDecimal(0);
|
||||||
|
StringBuffer sb = new StringBuffer();
|
||||||
|
List<Object> list = new ArrayList<>();
|
||||||
|
if (returnClazz == String.class) {
|
||||||
|
for (V value : values) {
|
||||||
|
Object r = method.invoke(value);
|
||||||
|
sb.append(r).append("_");
|
||||||
|
}
|
||||||
|
} else if (isNumberTypes(returnClazz)) {
|
||||||
|
for (V value : values) {
|
||||||
|
Object r = method.invoke(value);
|
||||||
|
if (r != null) {
|
||||||
|
sum = NumberUtils.objToBigDecimalDefault(r, BigDecimal.ZERO).add(sum);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (V value : values) {
|
||||||
|
Object r = method.invoke(value);
|
||||||
|
list.add(r);
|
||||||
|
}
|
||||||
|
String getMethodName = method.getName();
|
||||||
|
String setMethodName = "set" + getMethodName.substring(3);
|
||||||
|
String setMethodNameList = "setMerge" + getMethodName.substring(3) + "List";
|
||||||
|
Method setMehtod = null;
|
||||||
|
|
||||||
VvTradeOrderLineEntity vvTradeOrderLineEntity1 = new VvTradeOrderLineEntity();
|
List<Method> methods = new ArrayList<>();
|
||||||
VvTradeOrderLineEntity vvTradeOrderLineEntity2 = new VvTradeOrderLineEntity();
|
getAllDeclaredMethods(methods,v.getClass());
|
||||||
|
for (Method m : methods) {
|
||||||
|
if (m.getName().equals(setMethodNameList)) {
|
||||||
|
setMehtod = m;
|
||||||
|
m.invoke(v, new Object[]{list});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (setMehtod == null) {
|
||||||
|
for (Method m : methods) {
|
||||||
|
if (m.getName().equals(setMethodName)) {
|
||||||
|
if (returnClazz == String.class) {
|
||||||
|
m.invoke(v, new Object[]{sb});
|
||||||
|
} else if (isNumberTypes(returnClazz)) {
|
||||||
|
Object obj = parseBasicTypeWrapper(returnClazz, sum);
|
||||||
|
m.invoke(v, new Object[]{obj});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return v;
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
vvTradeOrderLineEntity1.setSalePrice(new BigDecimal(10));
|
public static void getAllDeclaredMethods(List<Method> list ,Class<?> clazz) {
|
||||||
vvTradeOrderLineEntity2.setSalePrice(new BigDecimal(15));
|
if(clazz==Object.class){
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
Method methods[] = clazz.getDeclaredMethods();
|
||||||
vvTradeOrderLineEntity1.setPromotionPrice(new BigDecimal(3));
|
for (Method m : methods) {
|
||||||
vvTradeOrderLineEntity2.setPromotionPrice(new BigDecimal(2));
|
list.add(m);
|
||||||
|
}
|
||||||
|
getAllDeclaredMethods(list,clazz.getSuperclass());
|
||||||
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));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -340,7 +432,7 @@ public class SanUtils {
|
|||||||
|
|
||||||
public static <R> List<R> asList(R r) {
|
public static <R> List<R> asList(R r) {
|
||||||
List<R> result = new ArrayList<>();
|
List<R> result = new ArrayList<>();
|
||||||
if(r != null){
|
if (r != null) {
|
||||||
result.add(r);
|
result.add(r);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
@ -404,6 +496,7 @@ public class SanUtils {
|
|||||||
public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
|
public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
|
||||||
|
|
||||||
private static final List<Class<?>> primitiveTypes = new ArrayList<>(32);
|
private static final List<Class<?>> primitiveTypes = new ArrayList<>(32);
|
||||||
|
private static final List<Class<?>> isNumberTypes = new ArrayList<>(32);
|
||||||
|
|
||||||
static {
|
static {
|
||||||
primitiveTypes.add(Boolean.class);
|
primitiveTypes.add(Boolean.class);
|
||||||
@ -426,12 +519,35 @@ public class SanUtils {
|
|||||||
primitiveTypes.add(short.class);
|
primitiveTypes.add(short.class);
|
||||||
primitiveTypes.add(String.class);
|
primitiveTypes.add(String.class);
|
||||||
primitiveTypes.add(Date.class);
|
primitiveTypes.add(Date.class);
|
||||||
|
|
||||||
|
|
||||||
|
isNumberTypes.add(Byte.class);
|
||||||
|
isNumberTypes.add(Double.class);
|
||||||
|
isNumberTypes.add(Float.class);
|
||||||
|
isNumberTypes.add(Integer.class);
|
||||||
|
isNumberTypes.add(Long.class);
|
||||||
|
isNumberTypes.add(Short.class);
|
||||||
|
isNumberTypes.add(BigDecimal.class);
|
||||||
|
|
||||||
|
|
||||||
|
isNumberTypes.add(byte.class);
|
||||||
|
isNumberTypes.add(char.class);
|
||||||
|
isNumberTypes.add(double.class);
|
||||||
|
isNumberTypes.add(float.class);
|
||||||
|
isNumberTypes.add(int.class);
|
||||||
|
isNumberTypes.add(long.class);
|
||||||
|
isNumberTypes.add(short.class);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isBasicDataTypes(Class clazz) {
|
public static boolean isBasicDataTypes(Class clazz) {
|
||||||
return primitiveTypes.contains(clazz) ? true : false;
|
return primitiveTypes.contains(clazz) ? true : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isNumberTypes(Class clazz) {
|
||||||
|
return isNumberTypes.contains(clazz) ? true : false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public static <T> T get(Future<T> t) {
|
public static <T> T get(Future<T> t) {
|
||||||
|
|
||||||
@ -564,7 +680,7 @@ public class SanUtils {
|
|||||||
|
|
||||||
return (R) object;
|
return (R) object;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("线程池异常",e);
|
log.error("线程池异常", e);
|
||||||
} finally {
|
} finally {
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -574,8 +690,7 @@ public class SanUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static Callable getAsynRun(Runnable runnable) {
|
||||||
private static Callable getAsynRun(Runnable runnable) {
|
|
||||||
return new Callable() {
|
return new Callable() {
|
||||||
@Override
|
@Override
|
||||||
public R call() throws Exception {
|
public R call() throws Exception {
|
||||||
@ -585,7 +700,7 @@ public class SanUtils {
|
|||||||
runnable.run();
|
runnable.run();
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("线程池异常",e);
|
log.error("线程池异常", e);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -593,8 +708,7 @@ public class SanUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static AsynRunDTO build(Runnable... target) {
|
||||||
public static AsynRunDTO build(Runnable ... target){
|
|
||||||
Map<String, Future<R>> map = new HashMap<>();
|
Map<String, Future<R>> map = new HashMap<>();
|
||||||
for (int i = 0; i < target.length; i++) {
|
for (int i = 0; i < target.length; i++) {
|
||||||
Runnable v = target[i];
|
Runnable v = target[i];
|
||||||
@ -602,28 +716,25 @@ public class SanUtils {
|
|||||||
map.put(i + "", countFuture);
|
map.put(i + "", countFuture);
|
||||||
}
|
}
|
||||||
|
|
||||||
AsynRunDTO asynRunDTO = new AsynRunDTO();
|
AsynRunDTO asynRunDTO = new AsynRunDTO();
|
||||||
asynRunDTO.setMap(map);
|
asynRunDTO.setMap(map);
|
||||||
return asynRunDTO;
|
return asynRunDTO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void test(){
|
public void test() {
|
||||||
build(
|
build(
|
||||||
()->{
|
() -> {
|
||||||
System.out.println("1");
|
System.out.println("1");
|
||||||
},
|
},
|
||||||
()->{
|
() -> {
|
||||||
System.out.println("2");
|
System.out.println("2");
|
||||||
}
|
}
|
||||||
).run();
|
).run();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static AriseUser getName(AriseUser ariseUser) {
|
public static AriseUser getName(AriseUser ariseUser) {
|
||||||
|
|
||||||
return ariseUser;
|
return ariseUser;
|
||||||
|
|||||||
@ -0,0 +1,17 @@
|
|||||||
|
package com.heyu.api.alibaba.request.mm.order.resp;
|
||||||
|
|
||||||
|
import com.heyu.api.data.entity.vv.VvPackageEntity;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class AdminPackageDTO extends VvPackageEntity {
|
||||||
|
|
||||||
|
private List<VvTradeOrderLineDO> vvTradeOrderLineDOList = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
|
private List<OrderActionDTO> orderActionList;
|
||||||
|
}
|
||||||
@ -0,0 +1,28 @@
|
|||||||
|
package com.heyu.api.alibaba.request.mm.order.resp;
|
||||||
|
|
||||||
|
import com.heyu.api.data.entity.vv.VvPackageEntity;
|
||||||
|
import com.heyu.api.data.entity.vv.VvTradeOrderEntity;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class AppPackageDTO extends VvPackageEntity {
|
||||||
|
|
||||||
|
/***
|
||||||
|
* 子单信息
|
||||||
|
*/
|
||||||
|
private List<VvTradeOrderLineDO> vvTradeOrderLineDOList;
|
||||||
|
|
||||||
|
/***
|
||||||
|
* 操作相关的信息
|
||||||
|
*/
|
||||||
|
private List<OrderActionDTO> orderActionList;
|
||||||
|
/***
|
||||||
|
* 订单信息
|
||||||
|
*/
|
||||||
|
private VvTradeOrderEntity vvTradeOrderEntity;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -3,25 +3,18 @@ package com.heyu.api.alibaba.request.mm.order.resp;
|
|||||||
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class AppTradeOrderLineDTO extends VvTradeOrderLineEntity {
|
public class AppTradeOrderLineDTO extends VvTradeOrderLineEntity {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/****
|
/****
|
||||||
* 子订单列表信息
|
* 子订单列表信息
|
||||||
*/
|
*/
|
||||||
private List<Long> tradeOrderLineIdList;
|
private List<Long> tradeOrderLineIdList;
|
||||||
|
|
||||||
|
|
||||||
/***
|
|
||||||
* 实际支付金额
|
|
||||||
*/
|
|
||||||
private BigDecimal realPayAmount;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,13 +0,0 @@
|
|||||||
package com.heyu.api.alibaba.request.mm.order.resp;
|
|
||||||
|
|
||||||
import com.heyu.api.data.entity.vv.VvPackageEntity;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
|
|
||||||
@Data
|
|
||||||
public class PackageDTO extends VvPackageEntity {
|
|
||||||
|
|
||||||
private List<VvTradeOrderLineDO> vvTradeOrderLineDOList;
|
|
||||||
}
|
|
||||||
@ -9,17 +9,10 @@ import java.util.List;
|
|||||||
@Data
|
@Data
|
||||||
public class VVOrderListResp extends VvTradeOrderEntity {
|
public class VVOrderListResp extends VvTradeOrderEntity {
|
||||||
|
|
||||||
|
|
||||||
/***
|
|
||||||
* 订单行信息
|
|
||||||
*/
|
|
||||||
private List<VvTradeOrderLineDO> vvTradeOrderLineDOList;
|
|
||||||
|
|
||||||
|
|
||||||
/***
|
/***
|
||||||
* 包裹信息
|
* 包裹信息
|
||||||
*/
|
*/
|
||||||
private List<PackageDTO> packageList;
|
private List<AdminPackageDTO> packageList;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,11 +3,22 @@ package com.heyu.api.alibaba.request.mm.order.resp;
|
|||||||
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class VvTradeOrderLineDO extends VvTradeOrderLineEntity {
|
public class VvTradeOrderLineDO extends VvTradeOrderLineEntity {
|
||||||
|
|
||||||
|
|
||||||
private List<OrderActionDTO> orderActionList;
|
/***
|
||||||
|
* 订单id
|
||||||
|
*/
|
||||||
|
private List<Long> mergeIdList ;
|
||||||
|
|
||||||
|
|
||||||
|
/***
|
||||||
|
* 数据合并
|
||||||
|
*/
|
||||||
|
private List<BigDecimal> mergeSalePriceList ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,7 +3,7 @@ package com.heyu.api.service.impl;
|
|||||||
import com.heyu.api.alibaba.request.mm.order.resp.OrderActionDTO;
|
import com.heyu.api.alibaba.request.mm.order.resp.OrderActionDTO;
|
||||||
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
||||||
import com.heyu.api.data.enums.OrderActionEnums;
|
import com.heyu.api.data.enums.OrderActionEnums;
|
||||||
import com.heyu.api.service.impl.impl.*;
|
import com.heyu.api.service.impl.order.*;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
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.VvTradeOrderLineTrackNumberDTO;
|
||||||
|
import com.heyu.api.alibaba.request.mm.order.resp.AdminPackageDTO;
|
||||||
import com.heyu.api.alibaba.request.mm.order.resp.OrderActionDTO;
|
import com.heyu.api.alibaba.request.mm.order.resp.OrderActionDTO;
|
||||||
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.alibaba.request.mm.order.resp.VvTradeOrderLineDO;
|
||||||
import com.heyu.api.data.dao.vv.VvPackageDao;
|
import com.heyu.api.data.dao.vv.VvPackageDao;
|
||||||
@ -32,21 +32,23 @@ public class VvTradeOrderConvertServiceImpl implements VvTradeOrderConvertServic
|
|||||||
List<VvPackageEntity> packageEntities = vvPackageDao.selectVvPackageByTrackNumbers(trackNumbers);
|
List<VvPackageEntity> packageEntities = vvPackageDao.selectVvPackageByTrackNumbers(trackNumbers);
|
||||||
Map<String, VvPackageEntity> vvPackageEntityMap = SanUtils.list2Map(packageEntities, VvPackageEntity::getTrackNumber);
|
Map<String, VvPackageEntity> vvPackageEntityMap = SanUtils.list2Map(packageEntities, VvPackageEntity::getTrackNumber);
|
||||||
|
|
||||||
Map<Long, Map<String, VvTradeOrderLineTrackNumberDTO>> groupBytraderOrderIdSkuId = groupBytraderOrderIdSkuId(list);
|
Map<Long,List<VvTradeOrderLineEntity>> groupByTradeOrderIdMap = SanUtils.groupBy(list,VvTradeOrderLineEntity::getTradeOrderId );
|
||||||
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);
|
||||||
|
|
||||||
Map<String, VvTradeOrderLineTrackNumberDTO> vvTradeOrderLineEntityMap = groupBytraderOrderIdSkuId.get(vvTradeOrderEntity.getId());
|
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = groupByTradeOrderIdMap.get(vvTradeOrderEntity.getId());
|
||||||
List<PackageDTO> packageList = new ArrayList<>();
|
Map<String, List<VvTradeOrderLineEntity>> groupByTrackNumberMap = SanUtils.groupBy(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getTrackNumber);
|
||||||
List<VvTradeOrderLineDO> vvTradeOrderLineDOList = new ArrayList<>();
|
|
||||||
|
|
||||||
for (Map.Entry<String, VvTradeOrderLineTrackNumberDTO> vvTradeOrderLineTrackNumber : vvTradeOrderLineEntityMap.entrySet()) {
|
List<AdminPackageDTO> packageList = new ArrayList<>();
|
||||||
VvTradeOrderLineTrackNumberDTO vvTradeOrderLineTrackNumberDTO = vvTradeOrderLineTrackNumber.getValue();
|
for (Map.Entry<String, List<VvTradeOrderLineEntity>> vvTradeOrderLineTrackNumber : groupByTrackNumberMap.entrySet()) {
|
||||||
List<VvTradeOrderLineEntity> vvTradeOrderLines = vvTradeOrderLineTrackNumberDTO.getVvTradeOrderLineEntities();
|
List<VvTradeOrderLineEntity> vvTradeOrderLineTrackNumberList = vvTradeOrderLineTrackNumber.getValue();
|
||||||
List<VvTradeOrderLineEntity> mergeTradeOrderLineList = SanUtils.merge(
|
String trackNumber = vvTradeOrderLineTrackNumber.getKey();
|
||||||
vvTradeOrderLines,
|
List<VvTradeOrderLineDO> vvTradeOrderLineDOList = SanUtils.convert2list(vvTradeOrderLineTrackNumberList,VvTradeOrderLineDO.class);
|
||||||
|
List<VvTradeOrderLineDO> mergeTradeOrderLine = SanUtils.groupByMerge2List(
|
||||||
|
VvTradeOrderLineEntity::getSkuId,
|
||||||
|
vvTradeOrderLineDOList,
|
||||||
VvTradeOrderLineEntity::getPromotionPrice,
|
VvTradeOrderLineEntity::getPromotionPrice,
|
||||||
VvTradeOrderLineEntity::getSalePrice,
|
VvTradeOrderLineEntity::getSalePrice,
|
||||||
VvTradeOrderLineEntity::getNum,
|
VvTradeOrderLineEntity::getNum,
|
||||||
@ -54,33 +56,22 @@ public class VvTradeOrderConvertServiceImpl implements VvTradeOrderConvertServic
|
|||||||
VvTradeOrderLineEntity::getShippingAmount,
|
VvTradeOrderLineEntity::getShippingAmount,
|
||||||
VvTradeOrderLineEntity::getRefundAmount,
|
VvTradeOrderLineEntity::getRefundAmount,
|
||||||
VvTradeOrderLineEntity::getRefundCount,
|
VvTradeOrderLineEntity::getRefundCount,
|
||||||
VvTradeOrderLineEntity::getProfitAmount
|
VvTradeOrderLineEntity::getProfitAmount,
|
||||||
|
VvTradeOrderLineEntity::getId
|
||||||
);
|
);
|
||||||
List<VvTradeOrderLineDO> vvTradeOrderLineRespList = new ArrayList<>();
|
AdminPackageDTO adminPackageDTO = new AdminPackageDTO();
|
||||||
for (VvTradeOrderLineEntity vvTradeOrderLine : mergeTradeOrderLineList) {
|
VvPackageEntity vvPackage = vvPackageEntityMap.get(trackNumber);
|
||||||
VvTradeOrderLineDO vvTradeOrderLineDO = new VvTradeOrderLineDO();
|
if(vvPackage != null){
|
||||||
BeanUtils.copyProperties(vvTradeOrderLine, vvTradeOrderLineDO);
|
BeanUtils.copyProperties(vvPackage,adminPackageDTO);
|
||||||
|
}
|
||||||
|
|
||||||
|
adminPackageDTO.setVvTradeOrderLineDOList(mergeTradeOrderLine);
|
||||||
|
List<OrderActionDTO> orderActionList = AbstractAction.getOrderActionDTO(mergeTradeOrderLine.get(0), false);
|
||||||
|
adminPackageDTO.setOrderActionList(orderActionList);
|
||||||
|
packageList.add(adminPackageDTO);
|
||||||
|
|
||||||
List<OrderActionDTO> orderActionList = AbstractAction.getOrderActionDTO(vvTradeOrderLine, false);
|
|
||||||
vvTradeOrderLineDO.setOrderActionList(orderActionList);
|
|
||||||
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.setPackageList(packageList);
|
vvOrderListResp.setPackageList(packageList);
|
||||||
vvOrderListResp.setVvTradeOrderLineDOList(vvTradeOrderLineDOList);
|
|
||||||
vvOrderListResps.add(vvOrderListResp);
|
vvOrderListResps.add(vvOrderListResp);
|
||||||
}
|
}
|
||||||
return vvOrderListResps;
|
return vvOrderListResps;
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
package com.heyu.api.service.impl.impl;
|
package com.heyu.api.service.impl.order;
|
||||||
|
|
||||||
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
||||||
import com.heyu.api.data.enums.OrderActionEnums;
|
import com.heyu.api.data.enums.OrderActionEnums;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.heyu.api.service.impl.impl;
|
package com.heyu.api.service.impl.order;
|
||||||
|
|
||||||
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
||||||
import com.heyu.api.data.enums.OrderActionEnums;
|
import com.heyu.api.data.enums.OrderActionEnums;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.heyu.api.service.impl.impl;
|
package com.heyu.api.service.impl.order;
|
||||||
|
|
||||||
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
||||||
import com.heyu.api.data.enums.OrderActionEnums;
|
import com.heyu.api.data.enums.OrderActionEnums;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.heyu.api.service.impl.impl;
|
package com.heyu.api.service.impl.order;
|
||||||
|
|
||||||
|
|
||||||
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.heyu.api.service.impl.impl;
|
package com.heyu.api.service.impl.order;
|
||||||
|
|
||||||
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
||||||
import com.heyu.api.data.enums.OrderActionEnums;
|
import com.heyu.api.data.enums.OrderActionEnums;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.heyu.api.service.impl.impl;
|
package com.heyu.api.service.impl.order;
|
||||||
|
|
||||||
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
||||||
import com.heyu.api.data.enums.OrderActionEnums;
|
import com.heyu.api.data.enums.OrderActionEnums;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.heyu.api.service.impl.impl;
|
package com.heyu.api.service.impl.order;
|
||||||
|
|
||||||
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
||||||
import com.heyu.api.data.enums.OrderActionEnums;
|
import com.heyu.api.data.enums.OrderActionEnums;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.heyu.api.service.impl.impl;
|
package com.heyu.api.service.impl.order;
|
||||||
|
|
||||||
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
||||||
import com.heyu.api.data.enums.OrderActionEnums;
|
import com.heyu.api.data.enums.OrderActionEnums;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.heyu.api.service.impl.impl;
|
package com.heyu.api.service.impl.order;
|
||||||
|
|
||||||
|
|
||||||
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
||||||
@ -140,9 +140,7 @@ public class AdminOrderController {
|
|||||||
for (VvTradeOrderLineEntity vvTradeOrderLineEntity : vvTradeOrderLineEntities) {
|
for (VvTradeOrderLineEntity vvTradeOrderLineEntity : vvTradeOrderLineEntities) {
|
||||||
vvTradeOrderEntities.add(vvTradeOrderEntityMap.get(vvTradeOrderLineEntity.getTradeOrderId()));
|
vvTradeOrderEntities.add(vvTradeOrderEntityMap.get(vvTradeOrderLineEntity.getTradeOrderId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
vvOrderRequest.setTradeOrderIds(tradeOrderIds);
|
vvOrderRequest.setTradeOrderIds(tradeOrderIds);
|
||||||
|
|
||||||
// 重新获取子单
|
// 重新获取子单
|
||||||
List<VvTradeOrderLineEntity> list = vvTradeOrderLineDao.selectByAdminConditionList(
|
List<VvTradeOrderLineEntity> list = vvTradeOrderLineDao.selectByAdminConditionList(
|
||||||
vvOrderRequest.getTradeOrderIds(),
|
vvOrderRequest.getTradeOrderIds(),
|
||||||
|
|||||||
@ -3,7 +3,6 @@ package com.heyu.api.controller.vv;
|
|||||||
|
|
||||||
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.data.enums.OrderStatusEnums;
|
|
||||||
import com.heyu.api.alibaba.request.mm.order.AppCloseDTO;
|
import com.heyu.api.alibaba.request.mm.order.AppCloseDTO;
|
||||||
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.VvTradeOrderLineTrackNumberDTO;
|
||||||
@ -14,6 +13,7 @@ import com.heyu.api.data.dao.vv.*;
|
|||||||
import com.heyu.api.data.dto.WeiXinPayDelayDTO;
|
import com.heyu.api.data.dto.WeiXinPayDelayDTO;
|
||||||
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.DelayTypeEnums;
|
||||||
|
import com.heyu.api.data.enums.OrderStatusEnums;
|
||||||
import com.heyu.api.data.enums.PayTypeEnums;
|
import com.heyu.api.data.enums.PayTypeEnums;
|
||||||
import com.heyu.api.data.enums.RoleEnums;
|
import com.heyu.api.data.enums.RoleEnums;
|
||||||
import com.heyu.api.data.utils.*;
|
import com.heyu.api.data.utils.*;
|
||||||
@ -26,7 +26,6 @@ import com.heyu.api.utils.PPageUtils;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.amqp.core.MessageDeliveryMode;
|
import org.springframework.amqp.core.MessageDeliveryMode;
|
||||||
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
||||||
import org.springframework.beans.BeanUtils;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
@ -129,22 +128,19 @@ public class AppOrderController {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
// 获取子单
|
// 获取子单
|
||||||
List<VvTradeOrderLineEntity> vvTradeOrderLineEntitiesGroupByTradeOrderId = pageUtils.getRows();
|
List<VvTradeOrderLineEntity> vvTradeOrderLineEntitiesGroupByTradeOrderId = pageUtils.getRows();
|
||||||
// 获取订单
|
// 获取订单
|
||||||
List<Long> tradeOrderIds = SanUtils.list2listFilterNull(vvTradeOrderLineEntitiesGroupByTradeOrderId, VvTradeOrderLineEntity::getTradeOrderId);
|
List<Long> tradeOrderIds = SanUtils.list2listFilterNull(vvTradeOrderLineEntitiesGroupByTradeOrderId, VvTradeOrderLineEntity::getTradeOrderId);
|
||||||
// 拿到订单的顺序
|
// 拿到订单的顺序
|
||||||
List<VvTradeOrderEntity> tradeOrderEntities = vvTradeOrderDao.selectVvTradeOrderByTradeOrderIds(tradeOrderIds);
|
List<VvTradeOrderEntity> tradeOrderEntities = vvTradeOrderDao.selectVvTradeOrderByTradeOrderIds(tradeOrderIds);
|
||||||
|
|
||||||
// 拿到所有的子订单
|
// 拿到所有的子订单
|
||||||
List<VvTradeOrderLineEntity> vvTradeOrderLineEntities = vvTradeOrderLineDao.selectAppTradeOrderByTradeOrderIds(tradeOrderIds);
|
List<VvTradeOrderLineEntity> vvTradeOrderLineEntities = vvTradeOrderLineDao.selectAppTradeOrderByTradeOrderIds(tradeOrderIds);
|
||||||
|
|
||||||
// 对订单进行排序,必须按照子单的顺序
|
// 对订单进行排序,必须按照子单的顺序
|
||||||
Map<Long, VvTradeOrderEntity> vvTradeOrderEntityMap = SanUtils.list2Map(tradeOrderEntities, VvTradeOrderEntity::getId);
|
Map<Long, VvTradeOrderEntity> vvTradeOrderEntityMap = SanUtils.list2Map(tradeOrderEntities, VvTradeOrderEntity::getId);
|
||||||
|
|
||||||
// 拿到所有的trackNumbers
|
// 拿到所有的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);
|
||||||
|
|
||||||
Map<String, VvPackageEntity> vvPackageEntityMap = SanUtils.list2Map(packageEntities, VvPackageEntity::getTrackNumber);
|
Map<String, VvPackageEntity> vvPackageEntityMap = SanUtils.list2Map(packageEntities, VvPackageEntity::getTrackNumber);
|
||||||
@ -155,42 +151,44 @@ public class AppOrderController {
|
|||||||
for (Long tradeOrderId : tradeOrderIds) {
|
for (Long tradeOrderId : tradeOrderIds) {
|
||||||
Map<String, VvTradeOrderLineTrackNumberDTO> stringVvTradeOrderLineTrackNumberDTOMap = groupBytraderOrderIdSkuId.get(tradeOrderId);
|
Map<String, VvTradeOrderLineTrackNumberDTO> stringVvTradeOrderLineTrackNumberDTOMap = groupBytraderOrderIdSkuId.get(tradeOrderId);
|
||||||
VvTradeOrderEntity vvTradeOrderEntity = vvTradeOrderEntityMap.get(tradeOrderId);
|
VvTradeOrderEntity vvTradeOrderEntity = vvTradeOrderEntityMap.get(tradeOrderId);
|
||||||
AppTradeOrderPackageDTO appTradeOrderPackageDTO = new AppTradeOrderPackageDTO();
|
|
||||||
VvPackageEntity packageDTO = null;
|
|
||||||
List<AppTradeOrderLineDTO> appTradeOrderLineDTOList = new ArrayList<>();
|
|
||||||
for (Map.Entry<String, VvTradeOrderLineTrackNumberDTO> mapEntry : stringVvTradeOrderLineTrackNumberDTOMap.entrySet()) {
|
for (Map.Entry<String, VvTradeOrderLineTrackNumberDTO> mapEntry : stringVvTradeOrderLineTrackNumberDTOMap.entrySet()) {
|
||||||
|
AppTradeOrderPackageDTO appTradeOrderPackageDTO = new AppTradeOrderPackageDTO();
|
||||||
VvTradeOrderLineTrackNumberDTO vvTradeOrderLineTrackNumberDTO = mapEntry.getValue();
|
VvTradeOrderLineTrackNumberDTO vvTradeOrderLineTrackNumberDTO = mapEntry.getValue();
|
||||||
VvTradeOrderLineEntity vvTradeOrderLineEntity = vvTradeOrderLineTrackNumberDTO.getVvTradeOrderLineEntities().get(0);
|
|
||||||
AppTradeOrderLineDTO appTradeOrderLineResp = new AppTradeOrderLineDTO();
|
|
||||||
|
|
||||||
BeanUtils.copyProperties(vvTradeOrderLineEntity, appTradeOrderLineResp);
|
|
||||||
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = vvTradeOrderLineTrackNumberDTO.getVvTradeOrderLineEntities();
|
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = vvTradeOrderLineTrackNumberDTO.getVvTradeOrderLineEntities();
|
||||||
// 设置促销价格和销售价格
|
List<Long> tradeOrderLineIdList = SanUtils.getFieldList(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getId);
|
||||||
BigDecimal promotionPrice = BigDecimal.ZERO;
|
VvPackageEntity packageDTO = null;
|
||||||
BigDecimal salePrice = BigDecimal.ZERO;
|
|
||||||
List<Long> tradeOrderLineIdList = new ArrayList<>();
|
VvTradeOrderLineEntity vvTradeOrderLine = SanUtils.merge(vvTradeOrderLineEntityList,
|
||||||
for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) {
|
VvTradeOrderLineEntity::getSalePrice,
|
||||||
//当时促销价
|
VvTradeOrderLineEntity::getPromotionPrice,
|
||||||
promotionPrice = BigDecimalUtil.add(promotionPrice, tradeOrderLineEntity.getPromotionPrice());
|
VvTradeOrderLineEntity::getNum
|
||||||
salePrice = BigDecimalUtil.add(salePrice, tradeOrderLineEntity.getSalePrice());
|
);
|
||||||
tradeOrderLineIdList.add(tradeOrderLineEntity.getId());
|
|
||||||
}
|
List<AppTradeOrderLineDTO> appTradeOrderLineDTOList = new ArrayList<>();
|
||||||
|
|
||||||
|
// for (VvTradeOrderLineEntity vvTradeOrderLine : vvTradeOrderLineEntityList) {
|
||||||
|
// AppTradeOrderLineDTO appTradeOrderLineResp = new AppTradeOrderLineDTO();
|
||||||
|
// BeanUtils.copyProperties(vvTradeOrderLine, appTradeOrderLineResp);
|
||||||
|
// appTradeOrderLineResp.setTradeOrderLineIdList(tradeOrderLineIdList);
|
||||||
|
// appTradeOrderLineDTOList.add(appTradeOrderLineResp);
|
||||||
|
// }
|
||||||
|
|
||||||
vvTradeOrderLineEntity.setPromotionPrice(promotionPrice);
|
|
||||||
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 分组
|
||||||
if (StringUtils.isNotEmpty(vvTradeOrderLineTrackNumberDTO.getTrackNumber())) {
|
if (StringUtils.isNotEmpty(vvTradeOrderLineTrackNumberDTO.getTrackNumber())) {
|
||||||
packageDTO = vvPackageEntityMap.get(vvTradeOrderLineTrackNumberDTO.getTrackNumber());
|
packageDTO = vvPackageEntityMap.get(vvTradeOrderLineTrackNumberDTO.getTrackNumber());
|
||||||
}
|
}
|
||||||
appTradeOrderLineResp.setNum(vvTradeOrderLineTrackNumberDTO.getVvTradeOrderLineEntities().size());
|
|
||||||
appTradeOrderLineResp.setTradeOrderLineIdList(tradeOrderLineIdList);
|
appTradeOrderPackageDTO.setAppTradeOrderLineDTOList(appTradeOrderLineDTOList);
|
||||||
appTradeOrderLineDTOList.add(appTradeOrderLineResp);
|
|
||||||
|
appTradeOrderPackageDTO.setVvPackageEntity(packageDTO);
|
||||||
|
|
||||||
|
appTradeOrderPackageDTO.setTradeOrderEntity(vvTradeOrderEntity);
|
||||||
|
|
||||||
|
appTradeOrderPackageDTOList.add(appTradeOrderPackageDTO);
|
||||||
}
|
}
|
||||||
|
|
||||||
appTradeOrderPackageDTO.setAppTradeOrderLineDTOList(appTradeOrderLineDTOList);
|
|
||||||
appTradeOrderPackageDTO.setVvPackageEntity(packageDTO);
|
|
||||||
appTradeOrderPackageDTO.setTradeOrderEntity(vvTradeOrderEntity);
|
|
||||||
appTradeOrderPackageDTOList.add(appTradeOrderPackageDTO);
|
|
||||||
}
|
}
|
||||||
return R.ok().setData(appTradeOrderPackageDTOList);
|
return R.ok().setData(appTradeOrderPackageDTOList);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,16 @@
|
|||||||
package com.api.test;
|
package com.api.test;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.heyu.api.alibaba.request.mm.order.resp.VvTradeOrderLineDO;
|
||||||
|
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
||||||
import com.heyu.api.data.utils.MD5Utils;
|
import com.heyu.api.data.utils.MD5Utils;
|
||||||
|
import com.heyu.api.data.utils.SanUtils;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public class Test4 {
|
public class Test4 {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
@ -13,4 +23,61 @@ public class Test4 {
|
|||||||
System.out.println(code2);
|
System.out.println(code2);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test1() {
|
||||||
|
|
||||||
|
VvTradeOrderLineEntity vvTradeOrderLineEntity1 = new VvTradeOrderLineEntity();
|
||||||
|
VvTradeOrderLineEntity vvTradeOrderLineEntity2 = new VvTradeOrderLineEntity();
|
||||||
|
VvTradeOrderLineEntity vvTradeOrderLineEntity3 = new VvTradeOrderLineEntity();
|
||||||
|
|
||||||
|
vvTradeOrderLineEntity1.setId(1L);
|
||||||
|
vvTradeOrderLineEntity2.setId(2L);
|
||||||
|
vvTradeOrderLineEntity3.setId(3L);
|
||||||
|
|
||||||
|
|
||||||
|
vvTradeOrderLineEntity1.setSkuId(1L);
|
||||||
|
vvTradeOrderLineEntity2.setSkuId(2L);
|
||||||
|
vvTradeOrderLineEntity3.setSkuId(2L);
|
||||||
|
|
||||||
|
|
||||||
|
vvTradeOrderLineEntity1.setSalePrice(new BigDecimal(10));
|
||||||
|
vvTradeOrderLineEntity2.setSalePrice(new BigDecimal(15));
|
||||||
|
vvTradeOrderLineEntity3.setSalePrice(new BigDecimal(18));
|
||||||
|
|
||||||
|
|
||||||
|
vvTradeOrderLineEntity1.setPromotionPrice(new BigDecimal(3));
|
||||||
|
vvTradeOrderLineEntity2.setPromotionPrice(new BigDecimal(2));
|
||||||
|
vvTradeOrderLineEntity3.setPromotionPrice(new BigDecimal(19));
|
||||||
|
|
||||||
|
|
||||||
|
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = new ArrayList<>();
|
||||||
|
vvTradeOrderLineEntityList.add(vvTradeOrderLineEntity1);
|
||||||
|
vvTradeOrderLineEntityList.add(vvTradeOrderLineEntity2);
|
||||||
|
vvTradeOrderLineEntityList.add(vvTradeOrderLineEntity3);
|
||||||
|
|
||||||
|
|
||||||
|
// VvTradeOrderLineEntity vvTradeOrderLine = merge(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getSalePrice,
|
||||||
|
// VvTradeOrderLineEntity::getPromotionPrice,
|
||||||
|
// VvTradeOrderLineEntity::getRefundCount
|
||||||
|
// );
|
||||||
|
|
||||||
|
//System.out.println(JSON.toJSONString(vvTradeOrderLine));
|
||||||
|
|
||||||
|
|
||||||
|
List<VvTradeOrderLineDO> vvTradeOrderLineDOList = SanUtils.convert2list(vvTradeOrderLineEntityList, VvTradeOrderLineDO.class);
|
||||||
|
|
||||||
|
|
||||||
|
Map<Long, VvTradeOrderLineDO> vvTradeOrderLineMap = SanUtils.groupByMerge2Map(VvTradeOrderLineEntity::getSkuId,
|
||||||
|
vvTradeOrderLineDOList,
|
||||||
|
VvTradeOrderLineEntity::getSalePrice,
|
||||||
|
VvTradeOrderLineEntity::getPromotionPrice,
|
||||||
|
VvTradeOrderLineEntity::getRefundCount,
|
||||||
|
VvTradeOrderLineEntity::getId
|
||||||
|
);
|
||||||
|
|
||||||
|
System.out.println(JSON.toJSONString(vvTradeOrderLineMap));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user