41 lines
1.2 KiB
Java
41 lines
1.2 KiB
Java
|
|
package com.ruoyi.cms.util;
|
||
|
|
|
||
|
|
import com.ruoyi.cms.domain.UserInfoDetail;
|
||
|
|
import com.ruoyi.common.core.domain.entity.AppUser;
|
||
|
|
import com.ruoyi.common.utils.StringUtils;
|
||
|
|
|
||
|
|
import java.lang.reflect.Field;
|
||
|
|
import java.util.Objects;
|
||
|
|
|
||
|
|
public class AppUserFieldCustomCopy {
|
||
|
|
|
||
|
|
private boolean isNull(Object o){
|
||
|
|
if(Objects.isNull(o)|| StringUtils.isEmpty(o.toString())){
|
||
|
|
return true;
|
||
|
|
}else{
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
public AppUser conditionalCopy(AppUser appUser, UserInfoDetail detail) throws IllegalAccessException {
|
||
|
|
Field[] fields = appUser.getClass().getDeclaredFields();
|
||
|
|
Field sourceField = null;
|
||
|
|
Object sourceFieldValue = null;
|
||
|
|
for (Field field : fields) {
|
||
|
|
field.setAccessible(true);
|
||
|
|
if (!isNull(field.get(appUser))){
|
||
|
|
continue;
|
||
|
|
}
|
||
|
|
try {
|
||
|
|
sourceField = detail.getClass().getDeclaredField(field.getName());
|
||
|
|
}catch (Exception e){
|
||
|
|
continue;
|
||
|
|
}
|
||
|
|
sourceField.setAccessible(true);
|
||
|
|
sourceFieldValue = sourceField.get(detail);
|
||
|
|
field.set(appUser, sourceFieldValue);
|
||
|
|
}
|
||
|
|
return appUser;
|
||
|
|
}
|
||
|
|
}
|