diff --git a/api-mapper/src/main/java/com/heyu/api/data/utils/Person.java b/api-mapper/src/main/java/com/heyu/api/data/utils/Person.java new file mode 100644 index 0000000..841d823 --- /dev/null +++ b/api-mapper/src/main/java/com/heyu/api/data/utils/Person.java @@ -0,0 +1,37 @@ + +package com.heyu.api.data.utils; + +import java.lang.reflect.Method; + +public class Person { + + private String name; + + public void setName(String name) { + this.name = name; + + } + + public String getName() { + return name; + } + + public static void main(String[] args) { + try { +// 创建 Person 类的实例 + Person person = new Person(); +// 获取 Person 类的 Class 对象 + Class personClass = person.getClass(); +// 获取 setName 方法 + Method setNameMethod = personClass.getDeclaredMethod("setName", String.class); +// 调用方法,设置 name 属性 + setNameMethod.invoke(person, "John Doe"); + //验址 name 属性是否被设置 + System.out.println("Person's name: " + person.getName()); + } catch (Exception e) { + e.printStackTrace(); + } + } + +} + diff --git a/api-mapper/src/main/java/com/heyu/api/data/utils/SanUtils.java b/api-mapper/src/main/java/com/heyu/api/data/utils/SanUtils.java index 3f3921d..338f57e 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/utils/SanUtils.java +++ b/api-mapper/src/main/java/com/heyu/api/data/utils/SanUtils.java @@ -1,5 +1,6 @@ package com.heyu.api.data.utils; +import com.alibaba.fastjson.JSON; import com.heyu.api.common.LBiFunction0; import com.heyu.api.common.test.AriseUser; import lombok.extern.slf4j.Slf4j; @@ -53,6 +54,33 @@ public class SanUtils { + + + public static List setNull(List values, LBiFunction0 ... functions ) { + List list = new ArrayList<>(); + try { + if (CollectionUtils.isEmpty(values)) { + return list; + + } + + for (LBiFunction0 function : functions) { + Method method = getSetMethod(function); + for (V value : values) { + Object [] objects= new Object[]{null}; + method.invoke(value,objects); + } + } + return list; + } catch (Exception e) { + e.printStackTrace(); + } + return list; + } + + + + public static List list2list(List values, LBiFunction0 function) { List list = new ArrayList<>(); try { @@ -134,6 +162,34 @@ public class SanUtils { return (R) parseBasicTypeWrapper(clazz, sum); } + + + private static Method getSetMethod(LBiFunction0 function) { + try { + Method method = function.getClass().getDeclaredMethods()[1]; + method.setAccessible(true); + 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) { + if (m.getName().equals(methodName)) { + return m; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + + return null; + } + + private static Method getMethod(LBiFunction0 function) { try { Method method = function.getClass().getDeclaredMethods()[1]; @@ -319,9 +375,9 @@ public class SanUtils { list.add(ai2); list.add(ai3); - int age = sum(list, AriseUser::getAge); - System.out.println(age); + setNull(list, AriseUser::getAge); + System.out.println(JSON.toJSONString(list)); } diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/OrderController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/OrderController.java index 3c004d1..2acc082 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/OrderController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/OrderController.java @@ -92,6 +92,9 @@ public class OrderController { List tradeOrderIds = SanUtils.list2listFilterNull(vvTradeOrderLineEntities,VvTradeOrderLineEntity::getTradeOrderId ); List tradeOrderEntities = vvTradeOrderDao.selectVvTradeOrderByTradeOrderIds(tradeOrderIds); + + + // 对订单进行排序,必须按照子单的顺序 Map vvTradeOrderEntityMap = SanUtils.list2Map(tradeOrderEntities, VvTradeOrderEntity::getId); List vvTradeOrderEntities = new ArrayList<>(); @@ -121,6 +124,9 @@ public class OrderController { vvOrderRequest.getReverseStatus(), vvOrderRequest.getCreateTimestampSort()); + + SanUtils.setNull(list,VvTradeOrderLineEntity::getProfitAmount); + List trackNumbers = SanUtils.list2listFilterNull(list, VvTradeOrderLineEntity::getTrackNumber); Map vvPackageEntityMap = new HashMap<>(); if (CollectionUtils.isNotEmpty(trackNumbers)) { diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppIndexPageController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppIndexPageController.java index 70784ec..b43151d 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppIndexPageController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppIndexPageController.java @@ -11,6 +11,7 @@ import com.heyu.api.data.dto.vv.VvProductPropertyDTO; import com.heyu.api.data.dto.vv.VvSkuDTO; import com.heyu.api.data.entity.vv.*; import com.heyu.api.data.utils.R; +import com.heyu.api.data.utils.SanUtils; import com.heyu.api.utils.ISelect; import com.heyu.api.utils.PPageUtils; import lombok.extern.slf4j.Slf4j; @@ -73,6 +74,16 @@ public class AppIndexPageController { ); } }); + + + + List vvProductEntities = pageUtils.getRows(); + + SanUtils.setNull(vvProductEntities, VvProductEntity::getRealSaleCount); + + + + return R.ok().setData(pageUtils); } @@ -88,7 +99,9 @@ public class AppIndexPageController { List productDetailEntities = vvProductDetailDao.selectVvProductDetailByProductId(vvProductDetailRequest.getProductId()); vvProductDTO.setVvProductDetailList(productDetailEntities); + List vvSkuEntities = vvSkuDao.selectVvSkuByProductId(vvProductDetailRequest.getProductId()); + List vvSkuDTOS = new ArrayList<>(); List vvSkuPropertyValueList = vvSkuPropertyValueDao.selectVvSkuPropertyValueByProductId(vvProduct.getId()); @@ -120,6 +133,12 @@ public class AppIndexPageController { vvSkuDTOS.add(vvSkuDTO); } + SanUtils.setNull(vvSkuDTOS, + VvSkuDTO::getRealSaleCount, + VvSkuDTO::getOriginPrice + ); + + vvProductDTO.setVvSkuList(vvSkuDTOS); List vvProductPropertyEntities = vvProductPropertyDao.selectVvProductPropertyByProductId(vvProductDetailRequest.getProductId()); diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppOrderController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppOrderController.java index cfc6c35..11db379 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppOrderController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppOrderController.java @@ -96,12 +96,16 @@ public class AppOrderController { // 获取子单 List vvTradeOrderLineEntities = pageUtils.getRows(); + // 获取订单 List tradeOrderIds = SanUtils.list2listFilterNull(vvTradeOrderLineEntities, VvTradeOrderLineEntity::getTradeOrderId); + List tradeOrderEntities = vvTradeOrderDao.selectVvTradeOrderByTradeOrderIds(tradeOrderIds); + // 对订单进行排序,必须按照子单的顺序 Map vvTradeOrderEntityMap = SanUtils.list2Map(tradeOrderEntities, VvTradeOrderEntity::getId); + List vvTradeOrderEntities = new ArrayList<>(); for (VvTradeOrderLineEntity vvTradeOrderLineEntity : vvTradeOrderLineEntities) { vvTradeOrderEntities.add(vvTradeOrderEntityMap.get(vvTradeOrderLineEntity.getTradeOrderId())); @@ -125,6 +129,14 @@ public class AppOrderController { vvOrderRequest.getReverseStatus(), vvOrderRequest.getCreateTimestampSort()); + + SanUtils.setNull(list, + VvTradeOrderLineEntity::getProfitAmount, + VvTradeOrderLineEntity::getModifyTime, + VvTradeOrderLineEntity::getIsDelete, + VvTradeOrderLineEntity::getCreateTime + ); + List trackNumbers = SanUtils.list2listFilterNull(list, VvTradeOrderLineEntity::getTrackNumber); Map vvPackageEntityMap = new HashMap<>(); if (CollectionUtils.isNotEmpty(trackNumbers)) { @@ -138,7 +150,6 @@ public class AppOrderController { for (VvTradeOrderEntity vvTradeOrderEntity : vvTradeOrderEntities) { VVOrderListResp vvOrderListResp = new VVOrderListResp(); BeanUtils.copyProperties(vvTradeOrderEntity, vvOrderListResp); - List vvTradeOrderLineEntityList = new ArrayList<>(); for (VvTradeOrderLineEntity tradeOrderLineEntity : list) { @@ -146,7 +157,6 @@ public class AppOrderController { vvTradeOrderLineEntityList.add(tradeOrderLineEntity); } } - /*** * 订单行信息 */