发表于: 2017-10-21 22:40:26

0 711


今天完成的事情:编写产品动态查询

public class ProductUtil {


private static final Log log = LogFactory.getLog(ProductController.class);
 
 public static final String Period_Day = "day";
 
 public static final String Period_Week = "week";
 
 public static final String Period_Month = "month";
 
 /**
  * 私有化构造器
  */
 private ProductUtil() {
}

/**
  * 按搜索条件动态拼接查询产品列表的sql
  *
  * @param name
  * @param interestBeginAt
  * @param minYearRate
  * @param maxYearRate
  * @param minAmount
  * @param status
  * @param monthLimit
  * @return
  * @throws ServiceException
  */
 public static Map<String, Object> getProductListParam(String name, Integer interestBeginAt,
                                                       BigDecimal minYearRate,
                                                       BigDecimal maxYearRate,
                                                       BigDecimal minAmount, Integer status,
                                                       Integer minMonthLimit,
                                                       Integer maxMonthLimit, String code,
                                                       Integer timeLimitType)
throws ServiceException {
Map<String, Object> params = new HashMap<>();
   /* 第一步、对最小年利率和最大年利率合法性校验 */
   if (DataUtils.isNotNullOrEmpty(minYearRate)) {
if (isLegalForYearate(minYearRate)) {
params.put("year_rate & >= ", minYearRate);
     }
else {
log.error("param minYearRate illegal, excepted:[0, 1], in fact:" + minYearRate);
       params.put("error", ProductErrorCode.illegalRange.getValue());
       return params;
     }
}
if (DataUtils.isNotNullOrEmpty(maxYearRate)) {
if (isLegalForYearate(maxYearRate)) {
params.put("year_rate & <= ", maxYearRate);
     }
else {
log.error("param maxYearRate illegal, excepted:[0, 1], in fact:" + maxYearRate);
       params.put("error", ProductErrorCode.illegalRange.getValue());
       return params;
     }
}
if (DataUtils.isNotNullOrEmpty(minYearRate) && DataUtils.isNotNullOrEmpty(maxYearRate)
&& minYearRate.compareTo(maxYearRate) > 0) {
log.error("param minYearRate can not be greater than maxYearRate, minYearRate: " + minYearRate
+ ", maxYearRate: " + maxYearRate);
     params.put("error", ProductErrorCode.minGreaterThanMax.getValue());
     return params;
   }
/* 第二步、动态拼接sql */
   if (StringUtil.isNotEmpty(name)) {
params.put("name & like ", "'%" + name + "%'");
   }
if (DataUtils.isNotNullOrEmpty(interestBeginAt)) {
params.put("interest_begin_at", interestBeginAt);
   }
if (DataUtils.isNotNullOrEmpty(minAmount)) {
params.put("min_amount", minAmount);
   }
if (DataUtils.isNotNullOrEmpty(status)) {
params.put("status", status);
   }
if (DataUtils.isNotNullOrEmpty(minMonthLimit)) {
params.put("month_limit &>= ", minMonthLimit);
     if (DataUtils.isNotNullOrEmpty(timeLimitType)) {
params.put("time_limit_type", timeLimitType);
     }
}
if (DataUtils.isNotNullOrEmpty(maxMonthLimit)) {
params.put("month_limit &<= ", maxMonthLimit);
     if (DataUtils.isNotNullOrEmpty(timeLimitType)) {
params.put("time_limit_type", timeLimitType);
     }
}
if (StringUtil.isNotEmpty(code)) {
params.put("code & like ", "'%" + code + "%'");
   }
params.put("@table", "product");
   params.put("@order", "status desc, is_recommend desc, update_at desc");
   return params;
 }

public static boolean isLegalForYearate(BigDecimal yearRate) {
if (DataUtils.isNullOrEmpty(yearRate)) {
return false;
   }
return yearRate.compareTo(BigDecimal.ZERO) >= 0 && yearRate.compareTo(BigDecimal.ONE) <= 0
       ? true : false;
 }

明天计划的事情:将代码部署到服务器,准备假数据

遇到的问题:无

收获:公司框架的配置及使用



返回列表 返回列表
评论

    分享到