发表于: 2018-01-01 22:52:23

1 455


今天完成的事情:

增加前台用户列表接口,增加排名接口

@RequestMapping(value = "/a/u/user/rank", method = RequestMethod.GET)
public String getuserListJson( ModelMap model,HttpServletRequest request) throws Exception {
//    验参

     ArrayList arrayList=new ArrayList <>();
List listRank=new ArrayList();
List<User> users=new ArrayList <>();
int i=1;
try {
log.info("=====获取用户ID=====");
String token = CookieUtil.getCookie(request, "token");
String[] mToken = DesUtil.getStrM(token).split(",");
Long uid = Long.parseLong(mToken[0]);
//          冻结用户不参与排名
           Map <String, Object> params = DynamicSQL.getUnfrozenUserList();
List <Long> ids = userService.getIdsByDynamicCondition(User.class, params, 0, Integer.MAX_VALUE);
users = userService.getObjectsByIds(ids);
//          对用户集合进行排序
//          排序规则:已学课时数相同时,学习天数更多的排前面;完全一样按注册先后排序
           Collections.sort(users, new Comparator <User>() {
public int compare(User o1, User o2) {
int x = (o2.getLearnPeriod() - o1.getLearnPeriod());
int y = (o2.getLearnTime() - o1.getLearnTime());
int z = (int) (o1.getCreateAt() - o2.getCreateAt());
if (x == 0) {
if (y == 0) {
return z;
}
return y;
}
return x;
}
}
);
for (User userRank : users
) {
Map map = new HashMap();
map.put("id", userRank.getId());
map.put("name", userRank.getName());
map.put("learnPeriod", userRank.getLearnPeriod());
map.put("learnTime",userRank.getLearnTime());
arrayList.add(map);
}
log.info("=====查询排名后用户位置=====");
for (User userRank:users
) {
if (userRank.getId().equals(uid)){
model.addAttribute("myScore",userRank.getScore());
model.addAttribute("myLearnTime",userRank.getLearnTime());
model.addAttribute("myLearnPeriod",userRank.getLearnPeriod());
model.addAttribute("beat",(new DecimalFormat("0.0%")).format(((double) (users.size()-i))/((double)(users.size()))));
break;
}
i++;
}
//          取排名后集合前5条
           listRank = arrayList.subList(0,5);
model.addAttribute("list", listRank);
model.addAttribute("code", 0);

}catch (Exception e){
model.addAttribute("code",-1);
log.info("系统错误");
e.printStackTrace();
}
return "/jsps/user-jsp/json/userListJson";
}


明天计划完成的事情:

完成支付接口

遇到的问题:

暂无

收获:

暂无



返回列表 返回列表
评论

    分享到