From a5ad429c247332f02bf4a8715aba2d8795628768 Mon Sep 17 00:00:00 2001 From: litao Date: Tue, 6 Jun 2017 11:37:47 +0800 Subject: [PATCH] bug xiufu --- .../com/lyms/platform/common/utils/EnumUtil.java | 75 ++++++++++++++++++---- .../operate/web/controller/ReportController.java | 4 +- .../web/service/impl/ReportServiceImpl.java | 13 +++- .../operate/web/utils/CollectionUtils.java | 6 +- 4 files changed, 81 insertions(+), 17 deletions(-) diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/EnumUtil.java b/platform-common/src/main/java/com/lyms/platform/common/utils/EnumUtil.java index ed4f48f..2900620 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/utils/EnumUtil.java +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/EnumUtil.java @@ -1,12 +1,13 @@ package com.lyms.platform.common.utils; import org.apache.commons.beanutils.PropertyUtils; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections.MapUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.security.InvalidParameterException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @Author: litao @@ -15,39 +16,89 @@ import java.util.Map; */ public class EnumUtil { + private static final Logger LOGGER = LoggerFactory.getLogger(EnumUtil.class); + private static final String DEFAULT_KEY_NAME = "id"; private static final String DEFAULT_VALUE_NAME = "name"; + /** 返回list中map的k、v的名称 */ + private static final String RESULT_DEFAULT_KEY = "id"; + private static final String RESULT_DEFAULT_VALUE = "name"; + + public static List> toJson(Class clazz) { return toJson(clazz, DEFAULT_KEY_NAME, DEFAULT_VALUE_NAME); } public static List> toJson(Class clazz, String codeName, String valueName) { - List> list = new ArrayList<>(); - if (!clazz.isEnum()) { throw new InvalidParameterException("请传入枚举类型参数"); } + List> list = new ArrayList<>(); + org.springframework.util.Assert.notNull(codeName, "key不能为null"); org.springframework.util.Assert.notNull(valueName, "value不能为null"); try { T[] enumConstants = clazz.getEnumConstants(); for (T ec : enumConstants) { - Object key = PropertyUtils.getProperty(ec,codeName); - Object value = PropertyUtils.getProperty(ec,valueName); - if(key != null && value != null) { - Map tempMap = new HashMap<>(); - tempMap.put("id", key.toString()); - tempMap.put("name", value); + Map tempMap = getTempMap(ec, codeName, valueName); + if(MapUtils.isNotEmpty(tempMap)) { list.add(tempMap); } } } catch (Exception e) { + LOGGER.error("枚举类转换json出错: ", e.fillInStackTrace()); e.printStackTrace(); } return list; } + public static List> listToJson(List couponEnums) { + return listToJson(couponEnums, DEFAULT_KEY_NAME, DEFAULT_VALUE_NAME); + } + + public static List> listToJson(List list, String codeName, String valueName) { + List> restList = new ArrayList<>(); + + if(CollectionUtils.isNotEmpty(list)) { + if(!list.get(0).getClass().isEnum()) { + throw new InvalidParameterException("请传入枚举类型参数"); + } + + Iterator iterator = list.iterator(); + while(iterator.hasNext()) { + T t = iterator.next(); + Map tempMap = getTempMap(t, codeName, valueName); + if(MapUtils.isNotEmpty(tempMap)) { + restList.add(tempMap); + } + } + } + + if(!list.get(0).getClass().isEnum()) { + throw new InvalidParameterException("请传入枚举类型参数"); + } + + return restList; + } + + private static Map getTempMap(Object bean, String codeName, String valueName) { + try { + Map tempMap = new HashMap<>(); + Object key = PropertyUtils.getProperty(bean, codeName); + Object value = PropertyUtils.getProperty(bean,valueName); + if(key != null && value != null) { + tempMap.put(RESULT_DEFAULT_KEY, key.toString()); + tempMap.put(RESULT_DEFAULT_VALUE, value); + } + return tempMap; + } catch (Exception e) { + LOGGER.error("enmu转map出错:", e.fillInStackTrace()); + e.printStackTrace(); + } + return null; + } + } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ReportController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ReportController.java index b59d205..2f9dcbc 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ReportController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ReportController.java @@ -271,8 +271,8 @@ public class ReportController extends BaseController { @ResponseBody @TokenRequired @RequestMapping(value = "/init/coupon", method = RequestMethod.GET) - public BaseObjectResponse initCoupon(HttpServletRequest request) { - return reportService.couponInit(CollectionUtils.createMap("userId", getUserId(request))); + public BaseObjectResponse initCoupon(HttpServletRequest request, String couponType) { + return reportService.couponInit(CollectionUtils.createMap("userId", getUserId(request), "couponType", couponType)); } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java index 75abc80..3488871 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java @@ -518,8 +518,17 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService param.put("hospitalIds", CollectionUtils.asList((String) param.get("hospitalId"))); } - return RespBuilder.buildSuccess("coupons", EnumUtil.toJson(CouponEnums.class, "code", "name"), - "hTemp", couponMapper.findHospitals(param)); + + String couponType = (String) param.get("couponType"); + List enmus = new ArrayList<>(); + if(StringUtils.isNotBlank(couponType)) { + List coupons = CollectionUtils.asList(couponType, Integer.class); + for (Integer coupon : coupons) { + enmus.add(CouponEnums.get(coupon)); + } + } + + return RespBuilder.buildSuccess("coupons", EnumUtil.listToJson(enmus, "code", "name"), "hTemp", couponMapper.findHospitals(param)); } @Override diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/CollectionUtils.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/CollectionUtils.java index 55bd1dc..76195a2 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/CollectionUtils.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/CollectionUtils.java @@ -82,7 +82,11 @@ public class CollectionUtils { List list = new ArrayList<>(); String[] id = ids.split(","); for (String s : id) { - list.add((T) s); + if(Integer.class == clazz) { + list.add((T) Integer.valueOf(s)); + } else { + list.add((T) s); + } } return list; } -- 1.8.3.1