发表于: 2017-12-16 22:52:04

1 561


今天完成的事情:

1.调试之前写好的签到接口

当时忘记把签到行为的端口返回每日签到给的豆子了

@RequestMapping(value = "/a/u/sign", method = RequestMethod.POST)
public String sign(ModelMap model) {
  Long uid = 6L;
  Sign sign = new Sign();
  sign.setUid(uid);

  try {
     //获取用户签到列表
     List<Long> signTimeStamp = signService.getSignIdsByUId(uid);

     //获取最近一次签到的时间
     Long currentSign = 1L;
     if (!signTimeStamp.isEmpty()) {
        currentSign = signTimeStamp.get(0);
     }
     log.info("the currentSign is " + currentSign);
     Long nowDay = System.currentTimeMillis();

     //获取每日签到逆袭豆
     int ctn = 1;
     if (SignUtil.isContinue(nowDay, currentSign)) {
        for (int i = 0; i < signTimeStamp.size() - 1; i++) {
           if (SignUtil.isContinue(signTimeStamp.get(i), signTimeStamp.get(i + 1))) {
              ctn++;
           } else {

              break;
           }
        }
        //算上今天的签到,多加一天
        ctn = ctn + 1;
        log.info("the final ctn is " + ctn);
     }


     if (ctn <= 5) {
        model.addAttribute("bean", ctn);
        log.info("The user received " + ctn + " beans by signing");
     } else {
        model.addAttribute("bean", 5);
        log.info("The user received " + ctn + " beans by signing");
     }




     //若上面获取时间为今天,code设定为“今天已签到”
     if (!SignUtil.isSameDay(currentSign, nowDay)) {
        signService.insert(sign);
        model.addAttribute("code", 0);

     } else {
        log.error("user has signed");
        model.addAttribute("code", -2001);
        model.addAttribute("bean", "");
     }


  } catch (Throwable t) {
     log.error(t.getMessage());
     model.addAttribute("code", -100000);
  }
  return "data/sign";
}

数据库中数据通过签到历史端口展示:


测试结果:

结果无误


2.学习动态查询

看了培宇的动态查询课堂

流程是自己写一个生成参数的map工具类,然后将sql语句需要的参数依次填入,然后通过公司框架的动态查询方法加载这个map,然后再填上分页参数,完

但是看了培宇的小课堂觉得还是不太理解,于是将培宇做的项目的map生成工具类扒了下来,自己试了一下

public static Map<String,Object> getMemberList(String name,String minPeriod,String maxPeriod,String minPrice,String maxPrice,Integer status,boolean count){
   Map<String,Object> params=new HashedMap();
   if (StringUtil.isNotEmpty(name)) {
       params.put("name & like", " '%" + name + "%'");
   }
   if (DataUtils.isNotNullOrEmpty(status)) {
       params.put("status", " '" + status + "'");
   }
   if (DataUtils.isNotNullOrEmpty(minPeriod)) {
       params.put("period+0 & >= ", " '" + minPeriod + "'");
   }
   if (DataUtils.isNotNullOrEmpty(maxPeriod)) {
       params.put("period+0 & <= ", " '" + maxPeriod + "'");
   }
   if (DataUtils.isNotNullOrEmpty(minPrice)) {
       params.put("price+0 & >= ", " '" + minPrice + "'");
   }
   if (DataUtils.isNotNullOrEmpty(maxPrice)) {
       params.put("price+0 & <= ", " '" + maxPrice + "'");
   }


   if(count){
       params.put("@query", " count(id)");

   }else {
       params.put("@order", "   period desc ");
       params.put("@query", " id");
   }


   params.put("@table", " member ");

   return params;
}


测试类:

@Test
public void getMemberList() {
   String name = "name";String minPeriod="";String maxPeriod="";String minPrice="25";String maxPrice="50";Integer status=1;boolean count=true;

   Map<String, Object> params = DynamicUtil.getMemberList(name, minPeriod, maxPeriod, minPrice, maxPrice, status, count);

   System.out.println(SQLUtil.convert2Sql(params, 0, 10));
   
}


测试结果:

再去查了下like是什么东西,然后为什么要+0,基本上动态查询的东西都懂了


3.完成了老师的增删查

表相对简单,也没有特别的要求,这个就不贴上来了



明天计划的事情:

将前台视频部分写完,后台列表写完


遇到的问题:


收获:

学会了公司的动态查询,把那个SQLUtil扒下来,说不定以后工作用得到


进度:

动态查询学习完成,老师接口完成,明天完成视频部前台部分和后台视频列表部分




返回列表 返回列表
评论

    分享到