提交修改

This commit is contained in:
quyixiao 2025-08-28 22:59:33 +08:00
parent 5ee2b01bab
commit bba5c8904c
5 changed files with 132 additions and 4 deletions

View File

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

View File

@ -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 <T, R, V> List<R> setNull(List<V> values, LBiFunction0<T, R> ... functions ) {
List<R> list = new ArrayList<>();
try {
if (CollectionUtils.isEmpty(values)) {
return list;
}
for (LBiFunction0<T, R> 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 <T, R, V> List<R> list2list(List<V> values, LBiFunction0<T, R> function) {
List<R> list = new ArrayList<>();
try {
@ -134,6 +162,34 @@ public class SanUtils {
return (R) parseBasicTypeWrapper(clazz, sum);
}
private static <T, R> Method getSetMethod(LBiFunction0<T, R> 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 <T, R> Method getMethod(LBiFunction0<T, R> 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));
}

View File

@ -92,6 +92,9 @@ public class OrderController {
List<Long> tradeOrderIds = SanUtils.list2listFilterNull(vvTradeOrderLineEntities,VvTradeOrderLineEntity::getTradeOrderId );
List<VvTradeOrderEntity> tradeOrderEntities = vvTradeOrderDao.selectVvTradeOrderByTradeOrderIds(tradeOrderIds);
// 对订单进行排序必须按照子单的顺序
Map<Long, VvTradeOrderEntity> vvTradeOrderEntityMap = SanUtils.list2Map(tradeOrderEntities, VvTradeOrderEntity::getId);
List<VvTradeOrderEntity> vvTradeOrderEntities = new ArrayList<>();
@ -121,6 +124,9 @@ public class OrderController {
vvOrderRequest.getReverseStatus(),
vvOrderRequest.getCreateTimestampSort());
SanUtils.setNull(list,VvTradeOrderLineEntity::getProfitAmount);
List<String> trackNumbers = SanUtils.list2listFilterNull(list, VvTradeOrderLineEntity::getTrackNumber);
Map<String, VvPackageEntity> vvPackageEntityMap = new HashMap<>();
if (CollectionUtils.isNotEmpty(trackNumbers)) {

View File

@ -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<VvProductEntity> vvProductEntities = pageUtils.getRows();
SanUtils.setNull(vvProductEntities, VvProductEntity::getRealSaleCount);
return R.ok().setData(pageUtils);
}
@ -88,7 +99,9 @@ public class AppIndexPageController {
List<VvProductDetailEntity> productDetailEntities = vvProductDetailDao.selectVvProductDetailByProductId(vvProductDetailRequest.getProductId());
vvProductDTO.setVvProductDetailList(productDetailEntities);
List<VvSkuEntity> vvSkuEntities = vvSkuDao.selectVvSkuByProductId(vvProductDetailRequest.getProductId());
List<VvSkuDTO> vvSkuDTOS = new ArrayList<>();
List<VvSkuPropertyValueEntity> 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<VvProductPropertyEntity> vvProductPropertyEntities = vvProductPropertyDao.selectVvProductPropertyByProductId(vvProductDetailRequest.getProductId());

View File

@ -96,12 +96,16 @@ public class AppOrderController {
// 获取子单
List<VvTradeOrderLineEntity> vvTradeOrderLineEntities = pageUtils.getRows();
// 获取订单
List<Long> tradeOrderIds = SanUtils.list2listFilterNull(vvTradeOrderLineEntities, VvTradeOrderLineEntity::getTradeOrderId);
List<VvTradeOrderEntity> tradeOrderEntities = vvTradeOrderDao.selectVvTradeOrderByTradeOrderIds(tradeOrderIds);
// 对订单进行排序必须按照子单的顺序
Map<Long, VvTradeOrderEntity> vvTradeOrderEntityMap = SanUtils.list2Map(tradeOrderEntities, VvTradeOrderEntity::getId);
List<VvTradeOrderEntity> 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<String> trackNumbers = SanUtils.list2listFilterNull(list, VvTradeOrderLineEntity::getTrackNumber);
Map<String, VvPackageEntity> 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<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = new ArrayList<>();
for (VvTradeOrderLineEntity tradeOrderLineEntity : list) {
@ -146,7 +157,6 @@ public class AppOrderController {
vvTradeOrderLineEntityList.add(tradeOrderLineEntity);
}
}
/***
* 订单行信息
*/