发表于: 2017-12-16 22:52:04
1 559
今天完成的事情:
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扒下来,说不定以后工作用得到
进度:
动态查询学习完成,老师接口完成,明天完成视频部前台部分和后台视频列表部分
评论