发表于: 2018-03-20 21:22:12

1 491


今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了Margin) 

按照师兄的建议,抽取出了判断是否为空的通用方法.

package com.ptteng.polyFinance.lgd.utils;

/**
* @author: Arike
* @program: polyFinance-lgd
* @description: 常用工具类
* @create: 2018/3/20 14:35
*/

public class CommonUtil {

/**
    * 用于判断字符参数是否为 "" or null.
    *
    * @param args 可变参数
    * @return false为非空
    */
   public static boolean isEmpty(Object... args) {
boolean a = false;
       for (Object arg : args) {
if (arg instanceof String) {//判断是否是String的实例
               if ("".equals(arg)) {//判断是否为空串
                   a = true;
               }
} else {
if (arg == null) {//非String类型,只用判断是否为null
                   a = true;
               }
}

}
return a;
   }
}

后台新增管理员接口:

/**
*
* @param admin 需要创建的admin对象
* @param modelMap 回显数据
* @return  json-taglib页面
*/
@RequestMapping(value = "/a/u/admin", method = RequestMethod.POST)
public String adminInsert(Admin admin, ModelMap modelMap) {
if (CommonUtil.isEmpty(admin.getLoginName(), admin.getPswd(), admin.getAdminRoleId())) {
modelMap.addAttribute("code", -200000);
   } else {
try {
if (adminService.getObjectByLoginName(admin.getLoginName()) != null) {
modelMap.addAttribute("code", 4003);
           } else {
admin.setUpdateAt(System.currentTimeMillis());
               admin.setUpdateBy(007L);
               admin.setCreateBy(007L);
               admin.setCreateAt(System.currentTimeMillis());
               String salt = SecureUtil.getSalt();
               admin.setSalt(salt);
               admin.setPswd(SecureUtil.messageDigest(admin.getPswd() + salt));
               adminService.insert(admin);
               modelMap.addAttribute("code", 0);
           }
} catch (Throwable e) {
modelMap.addAttribute("code", -100000);
           e.printStackTrace();
       }

}
return "polyFinance-lgd-server/admin/json/adminInsert";
}

后台模糊查询产品列表:

/**
*
* @param name 产品名称
* @param interestAmountLine 起投金额
* @param productMark 产品代号
* @param interestDelayed 起息日期
* @param productStatus 产品状态
* @param interestRateStart 年化收益下限
* @param interestRateEnd 年化收益上限
* @param financialPeriodDayStart 期限下限(日)
* @param financialPeriodDayEnd 期限上限(日)
* @param financialPeriodMonthStart 期限下限(月)
* @param financialPeriodMonthEnd 期限上限(月)
* @param page 当前显示第几页
* @param size 每页显示数量
* @param modelMap  用于给前端返回数据.
* @return 返回json-taglib页面.
*/
@RequestMapping(value = "/a/u/productList", method = RequestMethod.GET)
public String getProductList(String name, BigDecimal interestAmountLine, String productMark, Integer interestDelayed, Integer productStatus, BigDecimal interestRateStart, BigDecimal interestRateEnd, Integer financialPeriodDayStart, Integer financialPeriodDayEnd, Integer financialPeriodMonthStart, Integer financialPeriodMonthEnd, Integer page, Integer size, ModelMap modelMap) {

if (page == null) {
page = 1;
   }
if (size == null) {
size = 10;
   }
int start = (page - 1) * size;
   if (start < 0) {
start = 0;
   }

log.info("pageList : page= " + start + " , size=" + size);
   
   Map<String, Object> map = DynamicUtil.getProductListSqlMap(name, interestAmountLine, productMark, interestDelayed, productStatus, interestRateStart, interestRateEnd, financialPeriodDayStart, financialPeriodDayEnd, financialPeriodMonthStart, financialPeriodMonthEnd);
   try {
List<Long> ids = productService.getIdsByDynamicCondition(Product.class, map, start, size);
       List<Long> countIds = productService.getIdsByDynamicCondition(Product.class, map, 0, productService.countProductIds());
       System.out.println(SQLUtil.convert2Sql(map, start, size));
       List<Product> products = productService.getObjectsByIds(ids);
       modelMap.addAttribute("productList", products);
       modelMap.addAttribute("total", countIds.size());
       modelMap.addAttribute("code", 0);
       modelMap.addAttribute("size", size);
   } catch (ServiceException | ServiceDaoException e) {
modelMap.addAttribute("code", -100000);
       e.printStackTrace();
   }
return "polyFinance-lgd-server/product/json/productListJson";
}

对应的sql拼接

/**
*
* @param name 产品名称
* @param interestAmountLine 起投金额
* @param productMark 产品代号
* @param interestDelayed 起息日期
* @param productStatus 产品状态
* @param interestRateStart 年化收益下限
* @param interestRatrateEnd 年化收益上限
* @param financialPeriodDayStart 期限下限(日)
* @param financialPeriodDayEnd 期限上限(日)
* @param financialPeriodMonthStart 期限下限(月)
* @param financialPeriodMonthEnd 期限上限(月)
* @return 返回用于拼接SQL的Map集合.
*/
public static Map<String, Object> getProductListSqlMap(String name, BigDecimal interestAmountLine, String productMark, Integer interestDelayed, Integer productStatus, BigDecimal interestRateStart, BigDecimal interestRatrateEnd, Integer financialPeriodDayStart, Integer financialPeriodDayEnd, Integer financialPeriodMonthStart, Integer financialPeriodMonthEnd) {
Map<String, Object> param = new HashMap<>();
   if (!CommonUtil.isEmpty(name)) {
param.put("name & like", " '%" + name + "%'");
   }
if (!CommonUtil.isEmpty(interestAmountLine)) {
param.put("interest_amount_line & >=", interestAmountLine);
   }
if (!CommonUtil.isEmpty(productMark)) {
param.put("product_mark & =", " '" + productMark + "'");
   }
if (!CommonUtil.isEmpty(interestDelayed)) {
param.put("interest_delayed & =", interestDelayed);
   }
if (!CommonUtil.isEmpty(productStatus)) {
param.put("product_status & =", productStatus);
   }
if (!CommonUtil.isEmpty(interestRateStart)) {
param.put("interest_rate & >=", interestRateStart);
   }
if (!CommonUtil.isEmpty(interestRatrateEnd)) {
param.put("interest_rate & <=", interestRatrateEnd);
   }
if (!CommonUtil.isEmpty(financialPeriodDayStart)) {
param.put("financial_period_day & >=", financialPeriodDayStart);
   }
if (!CommonUtil.isEmpty(financialPeriodDayEnd)) {
param.put("financial_period_day & <=", financialPeriodDayEnd);
   }
if (!CommonUtil.isEmpty(financialPeriodMonthStart)) {
param.put("financial_period_month & >=", financialPeriodMonthStart);
   }
if (!CommonUtil.isEmpty(financialPeriodMonthEnd)) {
param.put("financial_period_month & <=", financialPeriodMonthEnd);
   }

param.put("@table", "product");
   param.put("@order", "create_at desc");
   return param;
}

产品上下线接口:

/**
*
* @param id 需要更新上下架的产品id
* @param modelMap
* @return
*/
@RequestMapping(value = "/a/u/product/{id}",method = RequestMethod.PUT)
public  String changeStatus(@PathVariable Long id, ModelMap modelMap){
try {
Product product = productService.getObjectById(id);
       if(product.getProductStatus()==0){
product.setProductStatus(1);
       } else {
product.setProductStatus(0);
        }
productService.update(product);
       modelMap.addAttribute("code", 0);
   } catch (ServiceException | ServiceDaoException e) {
modelMap.addAttribute("code", -100000);
       e.printStackTrace();
   }
return "polyFinance-lgd-server/product/json/productChangeStatus";
}

明天计划的事情:(一定要写非常细致的内容) 

前台-精选-前台产品列表-产品详情

前台-我的投资-投资详情


遇到的问题:(遇到什么困难,怎么解决的) 

null
收获:(通过今天的学习,学到了什么知识)

公司框架增加SQL总是感觉很蛋疼.


返回列表 返回列表
评论

    分享到