提交修改
This commit is contained in:
parent
f9cfef17ea
commit
0b25695a47
@ -51,8 +51,6 @@ public interface VvSkuPropertyValueDao extends BaseMapper<VvSkuPropertyValueEnti
|
||||
@Realy
|
||||
int deleteVvSkuPropertyValueRealById(Long id);
|
||||
|
||||
|
||||
|
||||
List<VvSkuPropertyValueEntity> selectVvSkuPropertyValueBySkuIds(@IN List<Long> skuId);
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,19 @@
|
||||
package com.heyu.api.data.utils;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class MethodSumDTO {
|
||||
|
||||
private Method method;
|
||||
|
||||
|
||||
private List<BigDecimal> itemList = new ArrayList<>();
|
||||
|
||||
}
|
||||
@ -19,12 +19,13 @@ import java.util.concurrent.*;
|
||||
@Slf4j
|
||||
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> groupByFiled2Map(List<V> values, LBiFunction0<T, R> function) {
|
||||
try {
|
||||
if (CollectionUtils.isEmpty(values)) {
|
||||
return new HashMap<>();
|
||||
|
||||
}
|
||||
|
||||
Map<R, V> map = new HashMap<>();
|
||||
Method method = getMethod(function);
|
||||
for (V value : values) {
|
||||
@ -39,7 +40,7 @@ public class SanUtils {
|
||||
|
||||
public static <T, R, V> List<R> list2listFilterNull(List<V> values, LBiFunction0<T, R> function) {
|
||||
|
||||
List<R> list = list2list(values, function);
|
||||
List<R> list = list2FieldList(values, function);
|
||||
|
||||
List<R> result = new ArrayList<>();
|
||||
|
||||
@ -60,9 +61,7 @@ public class SanUtils {
|
||||
try {
|
||||
if (CollectionUtils.isEmpty(values)) {
|
||||
return list;
|
||||
|
||||
}
|
||||
|
||||
for (LBiFunction0<T, R> function : functions) {
|
||||
Method method = getSetMethod(function);
|
||||
for (V value : values) {
|
||||
@ -78,7 +77,7 @@ public class SanUtils {
|
||||
}
|
||||
|
||||
|
||||
public static <T, V, R> List<R> convert2list(List<V> values, Class clazz) {
|
||||
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<>();
|
||||
@ -95,7 +94,7 @@ public class SanUtils {
|
||||
return list;
|
||||
}
|
||||
|
||||
public static <T, R, V> List<R> list2list(List<V> values, LBiFunction0<T, R> function) {
|
||||
public static <T, R, V> List<R> list2FieldList(List<V> values, LBiFunction0<T, R> function) {
|
||||
List<R> list = new ArrayList<>();
|
||||
try {
|
||||
if (CollectionUtils.isEmpty(values)) {
|
||||
@ -113,10 +112,34 @@ public class SanUtils {
|
||||
return list;
|
||||
}
|
||||
|
||||
public static <T, R, V> Map<R, List<V>> groupBy(List<V> values, LBiFunction0<T, R> function) {
|
||||
public static <T, R, V> List<R> field2Set2List(List<V> values, LBiFunction0<T, R> function) {
|
||||
List<R> list = new ArrayList<>();
|
||||
List<R> set = new ArrayList<>();
|
||||
try {
|
||||
if (CollectionUtils.isEmpty(values)) {
|
||||
return list;
|
||||
}
|
||||
Method method = getMethod(function);
|
||||
for (V value : values) {
|
||||
set.add((R) method.invoke(value));
|
||||
}
|
||||
|
||||
|
||||
for (R r : set) {
|
||||
list.add(r);
|
||||
}
|
||||
return list;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public static <T, R, V> Map<R, List<V>> groupByFiled2MapList(List<V> values, LBiFunction0<T, R> function) {
|
||||
if (CollectionUtils.isEmpty(values)) {
|
||||
return new HashMap<>();
|
||||
}
|
||||
|
||||
Map<R, List<V>> listmap = new HashMap<>();
|
||||
Method method = getMethod(function);
|
||||
try {
|
||||
@ -180,6 +203,51 @@ public class SanUtils {
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static <T,P , V,R> Map<P,R> groupAndSum(LBiFunction0<T, P> groupKeyFunction,List<V> values,LBiFunction0<T, R> function) {
|
||||
Map<P,MethodSumDTO> map = new HashMap<>();
|
||||
try {
|
||||
if (CollectionUtils.isEmpty(values)) {
|
||||
return new HashMap<>();
|
||||
}
|
||||
for (V value : values) {
|
||||
Method groupKeyMethod = getMethod(groupKeyFunction);
|
||||
P p = (P) groupKeyMethod.invoke(value);
|
||||
|
||||
Method method = getMethod(function);
|
||||
R r = (R) method.invoke(value);
|
||||
|
||||
if (r != null) {
|
||||
BigDecimal bigDecimalR = NumberUtils.objToBigDecimalDefault(r, BigDecimal.ZERO);
|
||||
MethodSumDTO methodSumDTO = map.get(p);
|
||||
if(methodSumDTO == null){
|
||||
methodSumDTO = new MethodSumDTO();
|
||||
}
|
||||
methodSumDTO.getItemList().add(bigDecimalR);
|
||||
methodSumDTO.setMethod(method);
|
||||
map.put(p, methodSumDTO);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
Map<P, R> result = new HashMap<>();
|
||||
for (Map.Entry<P, MethodSumDTO> entry : map.entrySet()) {
|
||||
|
||||
MethodSumDTO methodSumDTO = entry.getValue();
|
||||
if (methodSumDTO.getItemList().size() > 0) {
|
||||
BigDecimal sum = BigDecimal.ZERO;
|
||||
for (BigDecimal bigDecimal : methodSumDTO.getItemList()) {
|
||||
sum = sum.add(bigDecimal);
|
||||
}
|
||||
Class clazz = methodSumDTO.getMethod().getReturnType();
|
||||
result.put(entry.getKey(), (R) parseBasicTypeWrapper(clazz, sum));
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
public static <T, V, R> List<R> getFieldList(List<V> values, LBiFunction0<T, R> tlBiFunction0) {
|
||||
List<R> list = new ArrayList<>();
|
||||
if (CollectionUtils.isEmpty(values)) {
|
||||
@ -202,9 +270,9 @@ public class SanUtils {
|
||||
return list;
|
||||
}
|
||||
|
||||
public static <T, V, R> List<V> groupByMerge2List(LBiFunction0<T, R> groupByFunction, List<V> values, LBiFunction0<T, ? extends Object>... functionArray) {
|
||||
public static <T, V, R> List<V> groupMerge2List(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);
|
||||
Map<R, V> map = groupMerge2Map(groupByFunction, values, functionArray);
|
||||
if (map != null) {
|
||||
for (Map.Entry<R, V> entry : map.entrySet()) {
|
||||
vList.add(entry.getValue());
|
||||
@ -213,7 +281,7 @@ public class SanUtils {
|
||||
return vList;
|
||||
}
|
||||
|
||||
public static <T, V, R> Map<R, V> groupByMerge2Map(LBiFunction0<T, R> groupByFunction, List<V> values, LBiFunction0<T, ? extends Object>... functionArray) {
|
||||
public static <T, V, R> Map<R, V> groupMerge2Map(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<>();
|
||||
@ -249,6 +317,9 @@ public class SanUtils {
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public static <T, V> V merge(List<V> values, LBiFunction0<T, ? extends Object>... functionArray) {
|
||||
try {
|
||||
if (CollectionUtils.isEmpty(values)) {
|
||||
@ -326,7 +397,6 @@ public class SanUtils {
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static <T, R> Method getSetMethod(LBiFunction0<T, R> function) {
|
||||
try {
|
||||
Method method = function.getClass().getDeclaredMethods()[1];
|
||||
@ -334,13 +404,11 @@ public class SanUtils {
|
||||
SerializedLambda serializedLambda = (SerializedLambda) method.invoke(function);
|
||||
String methodName = serializedLambda.getImplMethodName();
|
||||
String className = serializedLambda.getImplClass().replace("/", ".");
|
||||
|
||||
methodName = "set" + methodName.substring(3);
|
||||
|
||||
Class<?> clazz = Class.forName(className);
|
||||
|
||||
Method methods[] = clazz.getDeclaredMethods();
|
||||
for (Method m : methods) {
|
||||
methodName = "set" + methodName.substring(3);
|
||||
List<Method> methodList = new ArrayList<>();
|
||||
getAllDeclaredMethods(methodList, clazz);
|
||||
for (Method m : methodList) {
|
||||
if (m.getName().equals(methodName)) {
|
||||
return m;
|
||||
}
|
||||
@ -348,11 +416,9 @@ public class SanUtils {
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
private static <T, R> Method getMethod(LBiFunction0<T, R> function) {
|
||||
try {
|
||||
Method method = function.getClass().getDeclaredMethods()[1];
|
||||
@ -361,9 +427,9 @@ public class SanUtils {
|
||||
String methodName = serializedLambda.getImplMethodName();
|
||||
String className = serializedLambda.getImplClass().replace("/", ".");
|
||||
Class<?> clazz = Class.forName(className);
|
||||
|
||||
Method methods[] = clazz.getDeclaredMethods();
|
||||
for (Method m : methods) {
|
||||
List<Method> methodList= new ArrayList<>();
|
||||
getAllDeclaredMethods(methodList, clazz);
|
||||
for (Method m : methodList) {
|
||||
if (m.getName().equals(methodName)) {
|
||||
return m;
|
||||
}
|
||||
@ -398,6 +464,8 @@ public class SanUtils {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static Method getRealMethod(List<Method> methods, Class paramClazz) {
|
||||
for (Method method : methods) {
|
||||
Class<?>[] parameterTypes = method.getParameterTypes();
|
||||
@ -410,6 +478,7 @@ public class SanUtils {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public static <T, R, V> List<R> convert(List<V> list, LBiFunction0<T, R> function) {
|
||||
List<Method> methods = getMethods(function);
|
||||
List result = new ArrayList<>();
|
||||
|
||||
@ -44,8 +44,8 @@ public class ReverseOrderServiceImpl implements ReverseOrderService {
|
||||
|
||||
@Override
|
||||
public R createReverseOrder(List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList, AppliyReverseRequest appliyReverseRequest) {
|
||||
List<Long> tradeOrderLineIds = SanUtils.list2list(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getId);
|
||||
Map<Long, VvTradeOrderLineEntity> vvTradeOrderLineEntityMap = SanUtils.list2Map(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getId);
|
||||
List<Long> tradeOrderLineIds = SanUtils.list2FieldList(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getId);
|
||||
Map<Long, VvTradeOrderLineEntity> vvTradeOrderLineEntityMap = SanUtils.groupByFiled2Map(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getId);
|
||||
Long tradeOrderId = SanUtils.findAnyNotNull(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getTradeOrderId);
|
||||
VvTradeOrderEntity vvTradeOrderEntity = vvTradeOrderDao.selectVvTradeOrderById(tradeOrderId);
|
||||
VvReverseOrderEntity vvReverseOrderEntity = new VvReverseOrderEntity();
|
||||
|
||||
@ -38,23 +38,23 @@ public class VvTradeOrderConvertServiceImpl implements VvTradeOrderConvertServic
|
||||
List<VvTradeOrderLineEntity> list,boolean isApp) {
|
||||
List<String> trackNumbers = SanUtils.list2listFilterNull(list, VvTradeOrderLineEntity::getTrackNumber);
|
||||
List<VvPackageEntity> packageEntities = vvPackageDao.selectVvPackageByTrackNumbers(trackNumbers);
|
||||
Map<String, VvPackageEntity> vvPackageEntityMap = SanUtils.list2Map(packageEntities, VvPackageEntity::getTrackNumber);
|
||||
Map<String, VvPackageEntity> vvPackageEntityMap = SanUtils.groupByFiled2Map(packageEntities, VvPackageEntity::getTrackNumber);
|
||||
|
||||
Map<Long,List<VvTradeOrderLineEntity>> groupByTradeOrderIdMap = SanUtils.groupBy(list,VvTradeOrderLineEntity::getTradeOrderId );
|
||||
Map<Long,List<VvTradeOrderLineEntity>> groupByTradeOrderIdMap = SanUtils.groupByFiled2MapList(list,VvTradeOrderLineEntity::getTradeOrderId );
|
||||
List<VVOrderListResp> vvOrderListResps = new ArrayList<>();
|
||||
for (VvTradeOrderEntity vvTradeOrderEntity : vvTradeOrderEntities) {
|
||||
VVOrderListResp vvOrderListResp = new VVOrderListResp();
|
||||
BeanUtils.copyProperties(vvTradeOrderEntity, vvOrderListResp);
|
||||
|
||||
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = groupByTradeOrderIdMap.get(vvTradeOrderEntity.getId());
|
||||
Map<String, List<VvTradeOrderLineEntity>> groupByTrackNumberMap = SanUtils.groupBy(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getTrackNumber);
|
||||
Map<String, List<VvTradeOrderLineEntity>> groupByTrackNumberMap = SanUtils.groupByFiled2MapList(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getTrackNumber);
|
||||
|
||||
List<AdminPackageDTO> packageList = new ArrayList<>();
|
||||
for (Map.Entry<String, List<VvTradeOrderLineEntity>> vvTradeOrderLineTrackNumber : groupByTrackNumberMap.entrySet()) {
|
||||
List<VvTradeOrderLineEntity> vvTradeOrderLineTrackNumberList = vvTradeOrderLineTrackNumber.getValue();
|
||||
String trackNumber = vvTradeOrderLineTrackNumber.getKey();
|
||||
List<VvTradeOrderLineDO> vvTradeOrderLineDOList = SanUtils.convert2list(vvTradeOrderLineTrackNumberList,VvTradeOrderLineDO.class);
|
||||
List<VvTradeOrderLineDO> mergeTradeOrderLine = SanUtils.groupByMerge2List(
|
||||
List<VvTradeOrderLineDO> vvTradeOrderLineDOList = SanUtils.convert2List(vvTradeOrderLineTrackNumberList,VvTradeOrderLineDO.class);
|
||||
List<VvTradeOrderLineDO> mergeTradeOrderLine = SanUtils.groupMerge2List(
|
||||
VvTradeOrderLineEntity::getSkuId,
|
||||
vvTradeOrderLineDOList,
|
||||
VvTradeOrderLineEntity::getPromotionPrice,
|
||||
|
||||
@ -83,10 +83,10 @@ public class AdminBuyerController {
|
||||
}
|
||||
|
||||
List<VvBuyerAddressEntity> vvBuyerAddressEntities = vvBuyerAddressDao.selectMapByBuyerIds(buyerIds);
|
||||
Map<Long, List<VvBuyerAddressEntity>> listMap = SanUtils.groupBy(vvBuyerAddressEntities, VvBuyerAddressEntity::getBuyerId);
|
||||
Map<Long, List<VvBuyerAddressEntity>> listMap = SanUtils.groupByFiled2MapList(vvBuyerAddressEntities, VvBuyerAddressEntity::getBuyerId);
|
||||
|
||||
List<VvPromoterEntity> vvPromoterEntities = vvPromoterDao.selectVvPromoterByPromoteIds(promoterIds);
|
||||
Map<String, List<VvPromoterEntity>> vvPromoterGroupBy = SanUtils.groupBy(vvPromoterEntities, VvPromoterEntity::getPromoterId);
|
||||
Map<String, List<VvPromoterEntity>> vvPromoterGroupBy = SanUtils.groupByFiled2MapList(vvPromoterEntities, VvPromoterEntity::getPromoterId);
|
||||
List<VvBuyerDTO> buyerDTOs = new ArrayList<>();
|
||||
for (VvBuyerEntity vvBuyerAddressEntity : vvBuyerEntities) {
|
||||
VvBuyerDTO vvBuyerDTO = new VvBuyerDTO();
|
||||
|
||||
@ -130,7 +130,7 @@ public class AdminOrderController {
|
||||
List<VvTradeOrderEntity> tradeOrderEntities = vvTradeOrderDao.selectVvTradeOrderByTradeOrderIds(tradeOrderIds);
|
||||
|
||||
// 对订单进行排序,必须按照子单的顺序
|
||||
Map<Long, VvTradeOrderEntity> vvTradeOrderEntityMap = SanUtils.list2Map(tradeOrderEntities, VvTradeOrderEntity::getId);
|
||||
Map<Long, VvTradeOrderEntity> vvTradeOrderEntityMap = SanUtils.groupByFiled2Map(tradeOrderEntities, VvTradeOrderEntity::getId);
|
||||
List<VvTradeOrderEntity> vvTradeOrderEntities = new ArrayList<>();
|
||||
for (VvTradeOrderLineEntity vvTradeOrderLineEntity : vvTradeOrderLineEntities) {
|
||||
vvTradeOrderEntities.add(vvTradeOrderEntityMap.get(vvTradeOrderLineEntity.getTradeOrderId()));
|
||||
@ -175,7 +175,7 @@ public class AdminOrderController {
|
||||
List<Long> tradeOrderLineIdList = SanUtils.getFieldList(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getId);
|
||||
|
||||
List<VvTradeOrderLineStatusLogEntity> vvTradeOrderLineStatusLogList = vvTradeOrderLineStatusLogDao.selectVvTradeOrderLineStatusLogByIdList(tradeOrderLineIdList);
|
||||
Map<Long, List<VvTradeOrderLineStatusLogEntity>> tradeOrderLineStatusLogMap = SanUtils.groupBy(vvTradeOrderLineStatusLogList, VvTradeOrderLineStatusLogEntity::getTradeOrderLineId);
|
||||
Map<Long, List<VvTradeOrderLineStatusLogEntity>> tradeOrderLineStatusLogMap = SanUtils.groupByFiled2MapList(vvTradeOrderLineStatusLogList, VvTradeOrderLineStatusLogEntity::getTradeOrderLineId);
|
||||
List<VvTradeOrderEntity> vvTradeOrderEntities = SanUtils.asList(vvTradeOrderEntity);
|
||||
|
||||
List<VVOrderListResp> vvOrderListResps = vvTradeOrderConvertService.convertTradeOrderLineResp(vvTradeOrderEntities, vvTradeOrderLineEntityList, false);
|
||||
|
||||
@ -228,7 +228,7 @@ public class AdminProductController {
|
||||
|
||||
|
||||
Map<Long, List<VvProductDetailEntity>> groupbyProductDetail =
|
||||
SanUtils.groupBy(vvProductDTO.getVvProductDetailList(), VvProductDetailEntity::getId);
|
||||
SanUtils.groupByFiled2MapList(vvProductDTO.getVvProductDetailList(), VvProductDetailEntity::getId);
|
||||
|
||||
// 1. 如果传过来的参数存在,则更新 ,如果不存在 ,则直接物理删除掉
|
||||
for (VvProductDetailEntity productDetailEntity : productDetailEntities) {
|
||||
@ -247,7 +247,7 @@ public class AdminProductController {
|
||||
List<VvSkuDTO> vvSkuDTOS = vvProductDTO.getVvSkuList();
|
||||
List<VvSkuEntity> vvSkuEntities = vvSkuDao.selectVvSkuByProductId(productId);
|
||||
|
||||
Map<Long, List<VvSkuDTO>> groupbySkuDTOs = SanUtils.groupBy(vvSkuDTOS, VvSkuDTO::getId);
|
||||
Map<Long, List<VvSkuDTO>> groupbySkuDTOs = SanUtils.groupByFiled2MapList(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<Long, List<VvSkuPropertyValueEntity>> groupbySkuPropertyValue =
|
||||
SanUtils.groupBy(vvSkuPropertyValueEntities, VvSkuPropertyValueEntity::getId);
|
||||
SanUtils.groupByFiled2MapList(vvSkuPropertyValueEntities, VvSkuPropertyValueEntity::getId);
|
||||
List<VvSkuPropertyValueEntity> vvSkuPropertyValueDB = vvSkuPropertyValueDao.selectVvSkuPropertyValueBySkuId(vvSkuDTO.getId());
|
||||
for (VvSkuPropertyValueEntity vvSkuPropertyValueDb : vvSkuPropertyValueDB) {
|
||||
// 如果不存在 ,则直接删除
|
||||
@ -291,7 +291,7 @@ public class AdminProductController {
|
||||
List<VvProductPropertyEntity> vvProductPropertyEntities = vvProductPropertyDao.selectVvProductPropertyByProductId(productId);
|
||||
|
||||
Map<Long, List<VvProductPropertyDTO>> groupbyProductProperty =
|
||||
SanUtils.groupBy(vvProductPropertyDTOS, VvProductPropertyDTO::getId);
|
||||
SanUtils.groupByFiled2MapList(vvProductPropertyDTOS, VvProductPropertyDTO::getId);
|
||||
|
||||
for (VvProductPropertyEntity vvProductProperty : vvProductPropertyEntities) {
|
||||
// 对他进行编辑
|
||||
@ -308,7 +308,7 @@ public class AdminProductController {
|
||||
|
||||
List<VvProductPropertyValueEntity> vvProductPropertyValueEntities = vvProductPropertyDTO.getVvProductPropertyValueList();
|
||||
Map<Long, List<VvProductPropertyValueEntity>> groupbyProductPropertyValue =
|
||||
SanUtils.groupBy(vvProductPropertyValueEntities, VvProductPropertyValueEntity::getId);
|
||||
SanUtils.groupByFiled2MapList(vvProductPropertyValueEntities, VvProductPropertyValueEntity::getId);
|
||||
|
||||
// 对他进行编辑
|
||||
if (productPropertyId != null) {
|
||||
|
||||
@ -88,9 +88,9 @@ public class AdminReverseController {
|
||||
List<VvReverseOrderEntity> vvReverseOrderEntities = pageUtils.getRows();
|
||||
List<Long> reverseOrderIds = SanUtils.list2listFilterNull(vvReverseOrderEntities, VvReverseOrderEntity::getId);
|
||||
List<VvReverseOrderLineEntity> reverseOrderLineEntities = vvReverseOrderLineDao.selectVvReverseOrderLineByReverseOrderIds(reverseOrderIds);
|
||||
Map<Long, List<VvReverseOrderLineEntity>> vvReverseOrderLineEntityMap = SanUtils.groupBy(reverseOrderLineEntities, VvReverseOrderLineEntity::getReverseOrderId);
|
||||
Map<Long, List<VvReverseOrderLineEntity>> vvReverseOrderLineEntityMap = SanUtils.groupByFiled2MapList(reverseOrderLineEntities, VvReverseOrderLineEntity::getReverseOrderId);
|
||||
List<VvReverseOrderProveEntity> vvReverseOrderProveEntities = vvReverseOrderProveDao.selectVvReverseOrderProveByReverseOrderId(reverseOrderIds);
|
||||
Map<Long, List<VvReverseOrderProveEntity>> vvProveMap = SanUtils.groupBy(vvReverseOrderProveEntities, VvReverseOrderProveEntity::getReverseOrderId);
|
||||
Map<Long, List<VvReverseOrderProveEntity>> vvProveMap = SanUtils.groupByFiled2MapList(vvReverseOrderProveEntities, VvReverseOrderProveEntity::getReverseOrderId);
|
||||
List<String> trackNumbers = new ArrayList<>();
|
||||
for (VvReverseOrderEntity vvReverseOrderEntity : vvReverseOrderEntities) {
|
||||
if (StringUtils.isNotEmpty(vvReverseOrderEntity.getTrackNumber())) {
|
||||
@ -212,7 +212,7 @@ public class AdminReverseController {
|
||||
}
|
||||
|
||||
List<VvReverseOrderLineEntity> vvReverseOrderLineEntities = vvReverseOrderLineDao.selectVvReverseOrderLineByReverseOrderId(vvApproveRequest.getReverseOrderId());
|
||||
List<Long> tradeOrderLineIds = SanUtils.list2list(vvReverseOrderLineEntities, VvReverseOrderLineEntity::getTradeOrderLineId);
|
||||
List<Long> tradeOrderLineIds = SanUtils.list2FieldList(vvReverseOrderLineEntities, VvReverseOrderLineEntity::getTradeOrderLineId);
|
||||
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByIds(tradeOrderLineIds);
|
||||
for (VvTradeOrderLineEntity vvTradeOrderLineEntity : vvTradeOrderLineEntityList) {
|
||||
vvTradeOrderLineEntity.setReverseStatus(vvReverseOrderEntity.getStatus());
|
||||
|
||||
@ -130,6 +130,7 @@ public class AppOrderController {
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
// 获取子单
|
||||
List<VvTradeOrderLineEntity> vvTradeOrderLineEntitiesGroupByTradeOrderId = pageUtils.getRows();
|
||||
// 获取订单
|
||||
@ -166,31 +167,11 @@ public class AppOrderController {
|
||||
@RequestMapping("/add")
|
||||
public R add(@RequestBody VvTradeOrderDTO vvOrderRequest) {
|
||||
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = new ArrayList<>();
|
||||
List<Long> skuIds = SanUtils.getFieldList( vvOrderRequest.getVvTradeOrderLineDTOList(),VvTradeOrderLineDTO::getSkuId);
|
||||
|
||||
List<Long> skuIds = new ArrayList<>();
|
||||
for (VvTradeOrderLineDTO vvTradeOrderLineDTO : vvOrderRequest.getVvTradeOrderLineDTOList()) {
|
||||
skuIds.add(vvTradeOrderLineDTO.getSkuId());
|
||||
}
|
||||
|
||||
Set<Long> productIds = new HashSet<>();
|
||||
List<VvSkuPropertyValueEntity> vvSkuPropertyValueList = vvSkuPropertyValueDao.selectVvSkuPropertyValueBySkuIds(skuIds);
|
||||
Map<Long, List<VvSkuPropertyValueEntity>> vvSkuPropertyValueMap = new HashMap<>();
|
||||
for (VvSkuPropertyValueEntity vvSkuPropertyValueEntity : vvSkuPropertyValueList) {
|
||||
List<VvSkuPropertyValueEntity> vvSkuPropertyValueEntities = vvSkuPropertyValueMap.get(vvSkuPropertyValueEntity.getSkuId());
|
||||
if (vvSkuPropertyValueEntities == null) {
|
||||
vvSkuPropertyValueEntities = new ArrayList<>();
|
||||
}
|
||||
vvSkuPropertyValueEntities.add(vvSkuPropertyValueEntity);
|
||||
vvSkuPropertyValueMap.put(vvSkuPropertyValueEntity.getSkuId(), vvSkuPropertyValueEntities);
|
||||
productIds.add(vvSkuPropertyValueEntity.getProductId());
|
||||
}
|
||||
|
||||
Map<Long, VvSkuEntity> skuEntityMap = new HashMap<>();
|
||||
|
||||
List<VvSkuEntity> vvSkuEntities = vvSkuDao.selectVvSkuBySkuIds(skuIds);
|
||||
|
||||
for (VvSkuEntity vvSkuEntity : vvSkuEntities) {
|
||||
skuEntityMap.put(vvSkuEntity.getId(), vvSkuEntity);
|
||||
// 如果库存少于 0 ,则显示库存不足
|
||||
if (vvSkuEntity.getStock() <= 0) {
|
||||
OrderSkuDTO orderSkuDTO = new OrderSkuDTO();
|
||||
@ -200,43 +181,26 @@ public class AppOrderController {
|
||||
}
|
||||
}
|
||||
|
||||
List<Long> productIdList = new ArrayList<>();
|
||||
productIdList.addAll(productIds);
|
||||
Map<Long, VvSkuEntity> skuEntityMap = SanUtils.groupByFiled2Map(vvSkuEntities,VvSkuEntity::getId);
|
||||
Map<Long, List<VvSkuPropertyValueEntity>> vvSkuPropertyValueMap = SanUtils.groupByFiled2MapList(vvSkuPropertyValueList, VvSkuPropertyValueEntity::getSkuId);
|
||||
|
||||
List<Long> productIdList = SanUtils.field2Set2List(vvSkuEntities,VvSkuEntity::getProductId);
|
||||
List<VvProductEntity> vvProductList = vvProductDao.selectVvProductByProductIds(productIdList);
|
||||
|
||||
Map<Long, VvProductEntity> vvProductMap = new HashMap<>();
|
||||
for (VvProductEntity vvProductEntity : vvProductList) {
|
||||
vvProductMap.put(vvProductEntity.getId(), vvProductEntity);
|
||||
}
|
||||
|
||||
Map<Long, Integer> productNumMap = new HashMap<>();
|
||||
|
||||
Map<Long, VvProductEntity> vvProductMap = SanUtils.groupByFiled2Map(vvProductList,VvProductEntity::getId);
|
||||
VvBuyerAddressEntity vvBuyerAddress = vvBuyerAddressDao.selectVvBuyerAddressById(vvOrderRequest.getBuyerAddressId());
|
||||
|
||||
for (VvTradeOrderLineDTO vvTradeOrderLineDTO : vvOrderRequest.getVvTradeOrderLineDTOList()) {
|
||||
VvSkuEntity vvSkuEntity = skuEntityMap.get(vvTradeOrderLineDTO.getSkuId());
|
||||
Integer saleCount = productNumMap.get(vvSkuEntity.getProductId());
|
||||
if (saleCount == null) {
|
||||
saleCount = 0;
|
||||
}
|
||||
|
||||
saleCount = saleCount + vvTradeOrderLineDTO.getNum();
|
||||
|
||||
productNumMap.put(vvSkuEntity.getProductId(), saleCount);
|
||||
|
||||
allNum = allNum + vvTradeOrderLineDTO.getNum();
|
||||
|
||||
List<VvSkuPropertyValueEntity> vvSkuPropertyValueEntities = vvSkuPropertyValueMap.get(vvTradeOrderLineDTO.getSkuId());
|
||||
|
||||
VvProductEntity vvProduct = vvProductMap.get(vvSkuEntity.getProductId());
|
||||
|
||||
List<PropertyNameValue> propertyNameValues = new ArrayList<>();
|
||||
|
||||
for (VvSkuPropertyValueEntity vvSkuPropertyValueEntity : vvSkuPropertyValueEntities) {
|
||||
PropertyNameValue propertyNameValue = new PropertyNameValue();
|
||||
propertyNameValue.setPropertyName(vvSkuPropertyValueEntity.getProductPropertyName());
|
||||
propertyNameValue.setPropertyValue(vvSkuPropertyValueEntity.getProductPropertyValue());
|
||||
propertyNameValues.add(propertyNameValue);
|
||||
}
|
||||
|
||||
for (int i = 0; i < vvTradeOrderLineDTO.getNum(); i++) {
|
||||
VvTradeOrderLineEntity vvTradeOrderLineEntity = new VvTradeOrderLineEntity();
|
||||
vvTradeOrderLineEntity.setSkuId(vvTradeOrderLineDTO.getSkuId());
|
||||
@ -284,7 +248,6 @@ public class AppOrderController {
|
||||
vvTradeOrderEntity.setDistrict(vvBuyerAddress.getDistrict());
|
||||
vvTradeOrderEntity.setBuyerDetailAddress(vvBuyerAddress.getDetail());
|
||||
|
||||
|
||||
BigDecimal tradeOrderPromotionPrice = SanUtils.sum(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getPromotionPrice);
|
||||
vvTradeOrderEntity.setPromotionPrice(tradeOrderPromotionPrice);
|
||||
|
||||
@ -304,14 +267,17 @@ public class AppOrderController {
|
||||
vvSkuDao.updateVvSkuStockSaleCountById(vvTradeOrderLineDTO.getNum(), vvTradeOrderLineDTO.getNum(), vvTradeOrderLineDTO.getNum(), vvTradeOrderLineDTO.getSkuId());
|
||||
}
|
||||
|
||||
Map<Long, Integer> productNumMap = SanUtils.groupAndSum(VvTradeOrderLineEntity::getProductId, vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getNum);
|
||||
for (Map.Entry<Long, Integer> map : productNumMap.entrySet()) {
|
||||
vvProductDao.updateShowSaleCountAndSaleCount(map.getValue(), map.getValue(), map.getKey());
|
||||
}
|
||||
|
||||
DirectAPIv3JsapiPrepayResponse jsapiPrepayResponse = jsapiPrepay.prePay(vvTradeOrderEntity.getId(),
|
||||
BigDecimalUtil.multiply(vvTradeOrderEntity.getPayAmount(), new BigDecimal(100)).longValue(),
|
||||
vvBuyerEntity.getOpenid()
|
||||
);
|
||||
|
||||
|
||||
String prepay_id = jsapiPrepayResponse.getPrepayId();
|
||||
if (jsapiPrepayResponse != null && jsapiPrepayResponse.getPrepayId() != null) {
|
||||
List<VvTradeOrderLineEntity> vvTradeOrderLineEntities = vvTradeOrderLineDao.selectVvTradeOrderLineByTradeOrderId(vvTradeOrderEntity.getId());
|
||||
@ -346,7 +312,6 @@ public class AppOrderController {
|
||||
String nonceStr = UUID.randomUUID().toString().replaceAll("-", "").substring(0, 32);
|
||||
String signatureStr = Stream.of(appid, String.valueOf(timeStamp), nonceStr, "prepay_id=" + prepay_id)
|
||||
.collect(Collectors.joining("\n", "", "\n"));
|
||||
|
||||
// "timeStamp": "1414561699",
|
||||
// "nonceStr": "5K8264ILTKCH16CQ2502SI8ZNMTM67VS",
|
||||
// "package": "prepay_id=wx201410272009395522657a690389285100",
|
||||
@ -359,7 +324,6 @@ public class AppOrderController {
|
||||
vo.setMchid(mchid);
|
||||
vo.setPaySign(sign);
|
||||
vo.setPrepayId("prepay_id=" + prepay_id);
|
||||
|
||||
return R.ok().setData(vo);
|
||||
}
|
||||
|
||||
|
||||
@ -141,7 +141,7 @@ public class AppReverseController {
|
||||
vvReverseOrderDao.updateVvReverseOrderById(vvReverseOrderEntity);
|
||||
|
||||
List<VvReverseOrderLineEntity> vvReverseOrderLineEntities = vvReverseOrderLineDao.selectVvReverseOrderLineByReverseOrderId(request.getReverseOrderId());
|
||||
List<Long> tradeOrderLineIds = SanUtils.list2list(vvReverseOrderLineEntities, VvReverseOrderLineEntity::getTradeOrderLineId);
|
||||
List<Long> tradeOrderLineIds = SanUtils.list2FieldList(vvReverseOrderLineEntities, VvReverseOrderLineEntity::getTradeOrderLineId);
|
||||
List<VvTradeOrderLineEntity> tradeOrderLineEntities = vvTradeOrderLineDao.selectVvTradeOrderLineByIds(tradeOrderLineIds);
|
||||
for (VvTradeOrderLineEntity tradeOrderLineEntity : tradeOrderLineEntities) {
|
||||
tradeOrderLineEntity.setReverseStatus(ReverseStatusEnums.close.getStatus());
|
||||
|
||||
@ -29,7 +29,7 @@ public class AppScrollController {
|
||||
@RequestMapping("/list")
|
||||
public R query(@RequestBody AppBaseRequest request) {
|
||||
List<VvScrollConfigEntity> vvScrollConfigEntityList = vvScrollConfigDao.selectVvScrollConfigAll();
|
||||
Map<String, List<VvScrollConfigEntity>> configMap = SanUtils.groupBy(vvScrollConfigEntityList, VvScrollConfigEntity::getType);
|
||||
Map<String, List<VvScrollConfigEntity>> configMap = SanUtils.groupByFiled2MapList(vvScrollConfigEntityList, VvScrollConfigEntity::getType);
|
||||
return R.ok().setData(configMap);
|
||||
}
|
||||
|
||||
|
||||
@ -66,10 +66,10 @@ public class Test4 {
|
||||
//System.out.println(JSON.toJSONString(vvTradeOrderLine));
|
||||
|
||||
|
||||
List<VvTradeOrderLineDO> vvTradeOrderLineDOList = SanUtils.convert2list(vvTradeOrderLineEntityList, VvTradeOrderLineDO.class);
|
||||
List<VvTradeOrderLineDO> vvTradeOrderLineDOList = SanUtils.convert2List(vvTradeOrderLineEntityList, VvTradeOrderLineDO.class);
|
||||
|
||||
|
||||
Map<Long, VvTradeOrderLineDO> vvTradeOrderLineMap = SanUtils.groupByMerge2Map(VvTradeOrderLineEntity::getSkuId,
|
||||
Map<Long, VvTradeOrderLineDO> vvTradeOrderLineMap = SanUtils.groupMerge2Map(VvTradeOrderLineEntity::getSkuId,
|
||||
vvTradeOrderLineDOList,
|
||||
VvTradeOrderLineEntity::getSalePrice,
|
||||
VvTradeOrderLineEntity::getPromotionPrice,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user