发表于: 2017-11-03 23:22:59
1 897
【今日完成】
今天开始写前台的接口,后台接口基础功能实现了,可以取得数据,但拦截器还没配,到时候一起配了。
前台接口的话,要比后台接口复杂一些,由于每个用户对文章的点赞状态都不一样,所以在前台获取一个文章详情,除了去文章表里面查询文章的基本信息外,还要去文章-用户关系表里查点赞状态和收藏状态,这里我用了一个动态查询来完成功能。
/**
* 前台-用户查看文档详情
*@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,写了前台接口
评论