发表于: 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;
}
明天计划的事情:将代码部署到服务器,准备假数据
遇到的问题:无
收获:公司框架的配置及使用
评论