|
@@ -0,0 +1,137 @@
|
|
|
|
+package fcb.project.manager.base.utils;
|
|
|
|
+
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
|
+import org.springframework.util.StringUtils;
|
|
|
|
+
|
|
|
|
+import java.math.BigDecimal;
|
|
|
|
+import java.util.*;
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * @author abnerhou
|
|
|
|
+ * @date 2020/4/23 17:35
|
|
|
|
+ * @desciption
|
|
|
|
+ */
|
|
|
|
+@Component
|
|
|
|
+public class DataUtils {
|
|
|
|
+
|
|
|
|
+ public static BigDecimal getBigDecimalObj(Object data) {
|
|
|
|
+
|
|
|
|
+ if (null == data) {
|
|
|
|
+ return null;
|
|
|
|
+ } else if (data instanceof String) {
|
|
|
|
+ String dataStr = (String) data;
|
|
|
|
+ if (!StringUtils.isEmpty(dataStr.trim())) {
|
|
|
|
+ return new BigDecimal(dataStr.trim());
|
|
|
|
+ }
|
|
|
|
+ } else if (data instanceof Long) {
|
|
|
|
+ Long dataLong = (Long) data;
|
|
|
|
+ return BigDecimal.valueOf(dataLong);
|
|
|
|
+ } else if (data instanceof Integer) {
|
|
|
|
+ Integer dataInt = (Integer) data;
|
|
|
|
+ return BigDecimal.valueOf(dataInt);
|
|
|
|
+
|
|
|
|
+ } else if (data instanceof Double) {
|
|
|
|
+ Double dataDouble = (Double) data;
|
|
|
|
+ return BigDecimal.valueOf(dataDouble);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return null;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public static Integer getInteger(Object object) {
|
|
|
|
+ if (null == object) {
|
|
|
|
+ return new Integer(0);
|
|
|
|
+ }
|
|
|
|
+ if (object instanceof String) {
|
|
|
|
+ String ojStr = (String) object;
|
|
|
|
+ if (StringUtils.isEmpty(ojStr)) {
|
|
|
|
+ //TODO:在斟酌这里的处理方式
|
|
|
|
+ return new Integer(0);
|
|
|
|
+ } else {
|
|
|
|
+ return new Integer(Integer.parseInt(ojStr.trim()));
|
|
|
|
+ }
|
|
|
|
+ } else if (object instanceof Integer) {
|
|
|
|
+ return (Integer) object;
|
|
|
|
+ } else if (object instanceof Long) {
|
|
|
|
+ return (Integer) object;
|
|
|
|
+ } else if (object instanceof Double) {
|
|
|
|
+ return (Integer) object;
|
|
|
|
+ } else {
|
|
|
|
+ return new Integer(0);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public static Integer getIntegerWithDefault(Object object, boolean withDefault) {
|
|
|
|
+ if (null == object) {
|
|
|
|
+
|
|
|
|
+ return withDefault ? new Integer(0) : null;
|
|
|
|
+ }
|
|
|
|
+ if (object instanceof String) {
|
|
|
|
+ String ojStr = (String) object;
|
|
|
|
+ if (StringUtils.isEmpty(ojStr)) {
|
|
|
|
+
|
|
|
|
+ return withDefault ? new Integer(0) : null;
|
|
|
|
+ } else {
|
|
|
|
+ return new Integer(Integer.parseInt(ojStr.trim()));
|
|
|
|
+ }
|
|
|
|
+ } else if (object instanceof Integer) {
|
|
|
|
+ return (Integer) object;
|
|
|
|
+ } else if (object instanceof Long) {
|
|
|
|
+ return (Integer) object;
|
|
|
|
+ } else if (object instanceof Double) {
|
|
|
|
+ return (Integer) object;
|
|
|
|
+ } else {
|
|
|
|
+ return withDefault ? new Integer(0) : null;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public static Map<String, Object> assembleResult(long totalNum, long totalPageNum, long currPageNum, Object list) {
|
|
|
|
+ Map<String, Object> resultMap = new HashMap<>();
|
|
|
|
+ resultMap.put("totalNum", totalNum);
|
|
|
|
+ resultMap.put("totalPageNum", totalPageNum);
|
|
|
|
+ resultMap.put("curPage", currPageNum);
|
|
|
|
+ resultMap.put("list", list);
|
|
|
|
+ return resultMap;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public static <T> void assembleTimeQueryWrapper(Map<String, Object> constantQuery, String dynamicQuery,
|
|
|
|
+ QueryWrapper<T> queryWrapper, String idQuery,
|
|
|
|
+ String secondQuery, String thirdQuery) {
|
|
|
|
+ assembleConstantQuery(queryWrapper, constantQuery);
|
|
|
|
+ if (org.apache.commons.lang3.StringUtils.isNotBlank(dynamicQuery)) {
|
|
|
|
+ queryWrapper.and(wrapper -> wrapper
|
|
|
|
+ .or().like(org.apache.commons.lang3.StringUtils.isNotBlank(secondQuery), secondQuery, dynamicQuery)
|
|
|
|
+ .or().like(org.apache.commons.lang3.StringUtils.isNotBlank(thirdQuery), thirdQuery, dynamicQuery)
|
|
|
|
+ .or().like(dynamicQuery.length() <= 32 && org.apache.commons.lang3.StringUtils.isNotBlank(idQuery), idQuery, dynamicQuery));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public static <T> void assembleConstantQuery(QueryWrapper<T> queryWrapper, Map<String, Object> constantQuery) {
|
|
|
|
+ if (null != queryWrapper && !CollectionUtils.isEmpty(constantQuery)) {
|
|
|
|
+ for (Map.Entry<String, Object> entry : constantQuery.entrySet()) {
|
|
|
|
+ queryWrapper.eq(entry.getKey(), entry.getValue());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 根据map的key进行字典升序排序
|
|
|
|
+ * @param map
|
|
|
|
+ * @return map
|
|
|
|
+ */
|
|
|
|
+ public static Map<String, Object> sortMapByKey(Map<String, Object>map) {
|
|
|
|
+ Map<String, Object> treemap = new TreeMap<String, Object>(map);
|
|
|
|
+ List<Map.Entry<String, Object>> list = new ArrayList<Map.Entry<String, Object>>(treemap.entrySet());
|
|
|
|
+ Collections.sort(list, new Comparator<Map.Entry<String, Object>>() {
|
|
|
|
+ @Override
|
|
|
|
+ public int compare(Map.Entry<String, Object> o1, Map.Entry<String, Object> o2) {
|
|
|
|
+ return org.apache.commons.lang3.StringUtils.compare(o1.getKey() , o2.getKey());
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ return treemap;
|
|
|
|
+ }
|
|
|
|
+}
|