From 5d36e1f987ef21e44ded2e8a1d06c28094ec1e76 Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期六, 19 四月 2025 12:39:47 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 zhitan-common/src/main/java/com/zhitan/common/utils/PropUtils.java |  126 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 126 insertions(+), 0 deletions(-)

diff --git a/zhitan-common/src/main/java/com/zhitan/common/utils/PropUtils.java b/zhitan-common/src/main/java/com/zhitan/common/utils/PropUtils.java
new file mode 100644
index 0000000..1be9af3
--- /dev/null
+++ b/zhitan-common/src/main/java/com/zhitan/common/utils/PropUtils.java
@@ -0,0 +1,126 @@
+package com.zhitan.common.utils;
+
+import com.alibaba.fastjson.JSONObject;
+import com.zhitan.common.constant.CommonConst;
+
+import java.lang.reflect.Field;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description: 灞炴�у�兼搷浣滃伐鍏风被
+ * @author: yxw
+ * @date: 2022骞�03鏈�07鏃� 9:57
+ */
+public class PropUtils {
+    /**
+     * 涓哄疄浣撹祴鍊�
+     *
+     * @param obj
+     * @param propName
+     * @param value
+     * @return
+     */
+    public static Object setValue(Object obj, String propName, Object value) {
+        try {
+            Field field = obj.getClass().getDeclaredField(propName);
+            field.setAccessible(true);
+            String nameTypeName = field.getType().getTypeName();
+            nameTypeName = StringUtil.ifEmptyOrNullReturnValue(nameTypeName).toLowerCase();
+            if (nameTypeName.contains("float")) {
+                float num = (float) DoubleUtil.toDouble(value);
+                field.set(obj, num);
+            } else if (nameTypeName.contains("double")) {
+                field.set(obj, DoubleUtil.toDouble(value));
+            } else if (nameTypeName.contains("bigdecimal")) {
+                BigDecimal valueOf = BigDecimal.valueOf(Double.parseDouble(String.valueOf(value)))
+                        .setScale(CommonConst.DIGIT_2, BigDecimal.ROUND_HALF_UP);
+
+                field.set(obj, valueOf);
+            } else {
+                field.set(obj, value);
+            }
+        } catch (Exception e) {
+            return null;
+        }
+        return obj;
+    }
+
+    /**
+     * 鑾峰彇瀵硅薄鐨勬寚瀹氬瓧娈电殑鍊�
+     *
+     * @param obj
+     * @param propName
+     * @return
+     */
+    public static String getPropValue(Object obj, String propName) {
+        String propValue = "";
+        try {
+            if (null != obj) {
+                JSONObject jsonObject = StringUtil.toJsonObject(obj);
+                if (!StringUtil.isEmptyOrNull(propName)) {
+                    propValue = jsonObject.getString(propName);
+                }
+            }
+        } catch (Exception e) {
+        }
+        return propValue;
+    }
+
+    /**
+     * 鑾峰彇瀵硅薄鐨勬寚瀹氬瓧娈电殑绫诲瀷
+     * 杩斿洖灞炴�х殑绫诲瀷瀛楃涓诧紙灏忓啓锛屼緥濡�:string/integer/double/date锛�
+     *
+     * @param obj      瀹炰綋
+     * @param propName 灞炴�у悕
+     * @return 锛堝皬鍐欙紝渚嬪:string/integer/double/date锛�
+     */
+    public static String getPropType(Object obj, String propName) {
+        String propType = "";
+        try {
+            if (null != obj && !StringUtil.isEmptyOrNull(propName)) {
+                Field[] fields = obj.getClass().getDeclaredFields();
+                for (Field field : fields) {
+                    String name = field.getName().toLowerCase();
+                    if (name.equals(propName.toLowerCase())) {
+                        propType = field.getType().getSimpleName().toLowerCase();
+                    }
+                }
+            }
+
+        } catch (Exception e) {
+
+        }
+        return propType;
+    }
+
+    /**
+     * 琛岃浆鍒�
+     * @param clazz 缁撴灉绫伙紝濡� UserInfo.class
+     * @param list 鏁版嵁闆�
+     * @return
+     * @param <T>
+     */
+    public static  <T> List rowToColumn(Class<T> clazz, List<T> list){
+        List<List> result;
+        Field[] fields = clazz.getDeclaredFields();
+        result = new ArrayList<>(fields.length);
+        for (int i = 0; i < fields.length; i++) {
+            result.add(new ArrayList());
+        }
+        for (T t : list) {
+            for (int i = 0; i < fields.length; i++) {
+                List l = result.get(i);
+                Field field = fields[i];
+                field.setAccessible(true);
+                try {
+                    l.add(field.get(t));
+                } catch (IllegalAccessException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+        return result;
+    }
+}

--
Gitblit v1.9.3