发表于: 2017-11-03 23:22:59

1 899


【今日完成】

今天开始写前台的接口,后台接口基础功能实现了,可以取得数据,但拦截器还没配,到时候一起配了。

前台接口的话,要比后台接口复杂一些,由于每个用户对文章的点赞状态都不一样,所以在前台获取一个文章详情,除了去文章表里面查询文章的基本信息外,还要去文章-用户关系表里查点赞状态和收藏状态,这里我用了一个动态查询来完成功能。

/**
* 前台-用户查看文档详情
*@param userId
*@param articleId
*@author Jeff
*@date 2017-11-3 16:17
**/
@RequestMapping(value = "/a/document/{articleId}", method = RequestMethod.GET)
public String getMultiNoticeJson(HttpServletRequest request,
                        HttpServletResponse response, ModelMap model, String userId,@PathVariable Long articleId )
throws Exception {

log.info("用户查看文档详情");
  //1 初始化参数
  if(null ==userId ||null == articleId){
model.addAttribute("code", -1);
     return "data/json";
  }
Integer size =10;
  Integer start =0;

  try {
// 2 通过参数拿条件
     Map<String, Object> param = DynamicUtil.getTargetId(userId,articleId,2);
     log.info("文档参数是:" + param);
     //3 通过条件拿Ids
     List<Long> ids = relationService.getIdsByDynamicCondition(Relation.class, param,start,size);
     log.info("the ids is " + ids);
     // 4 通过Ids拿公告列表
     List relationList = relationService.getObjectsByIds(ids);
     log.info("get article data is " + relationList.size());
     int i =relationList.size();
     while (i >0) {
Relation relation = (Relation) relationList.get(i-1);
        if (relation.getRelationType()==1) {
model.addAttribute("collectStatus",relation.getRelationStatus());
        }else if(relation.getRelationType()==2){
model.addAttribute("praiseStatus",relation.getRelationStatus());
        }
i--;
        log.info("循环一次结束i"+i);
     }
Article article=articleService.getObjectById(articleId);
     model.addAttribute("article", article);
     model.addAttribute("code", 0);
     model.addAttribute("page", 1);
     model.addAttribute("size", 1);


  } catch (Throwable t) {
log.error(t.getMessage());
     log.error("get article error" );
     model.addAttribute("code", -1);
  }

return "article/json/articleDetailJson";
}


当我写好接口后,发现Jetty启动不了,无奈,只能clear再install一下,结果install时候报错,发现前台的POM里面居然调用了后台的POM,照理说只需要调用core即可。随之我注释掉,再把Core重新clear,install一下。就可以运行了。


返回的结果是正确的。


【今日收获】

解决了一些小bug,写了前台接口


返回列表 返回列表
评论

    分享到